Ich suchte auf Google nach einer Bedeutung der kanonischen Repräsentation und stellte Dokumente auf, die völlig zu kryptisch sind. Kann jemand eine schnelle Erklärung der kanonischen Repräsentation geben und auch, was sind typische Schwachstellen in Websites für kanonische Repräsentationsangriffe?Was bedeutet kanonische Repräsentation und ihre potentielle Verwundbarkeit gegenüber Websites
Antwort
Canonicalization ist der Vorgang, bei dem Sie eine Eingabe, z. B. einen Dateinamen oder eine Zeichenfolge, in eine Standardrepräsentation umwandeln. Wenn Ihre Webanwendung nur den Zugriff auf Dateien unter C: \ websites \ mydomain zulässt, wird in der Regel jede Eingabe, die sich auf Dateinamen bezieht, als physischer direkter Pfad und nicht als einer, der relative Pfade verwendet, kanonisiert. Wenn Sie C: \ websites \ meinedomain \ example \ beispiel.txt öffnen wollten, könnte eine Eingabe in diese Funktion example \ example.txt sein. Es ist schwierig herauszufinden, ob dies über die Grenzen Ihrer Website hinausgeht, also würde die Kanonisierungsfunktion das Anwendungsverzeichnis betrachten und diesen relativen Pfad in einen physischen Pfad ändern, C: \ websites \ meinedomain \ beispiel \ beispiel.txt. Dies ist offensichtlich einfacher zu überprüfen, da Sie einfach einen Stringvergleich am Anfang des Dateipfads durchführen.
Für HTML-Eingaben nehmen Sie Eingaben wie% 20 und kanalisieren sie durch Encodierung, so dass dies zu einem Leerzeichen werden würde. Dies ist eine gute Idee, da die Anzahl der verschiedenen Arten der Codierung zahlreich ist. Kanonisierung bedeutet, dass Sie nur die decodierte Zeichenkette überprüfen, anstatt zu versuchen, alle Codierungsvariationen abzudecken.
Im Grunde nehmen Sie Eingaben, die logisch äquivalent sind, und konvertieren sie in eine Standardform, auf die Sie dann reagieren können.
so möglicherweise in einem Eingabefeld konnte ich versuchen, eine SQL-Injektion Angriff oder mögliche XSS zu normalen String Bereinigung zu umgehen? – predhme
Sanitation ist anders. Im Allgemeinen wird eine SQL-Injection-Attacke keine Codierung verwenden, daher handelt es sich nicht um ein Problem der Kanonisierung. XSS kann sein, es hängt davon ab, was Sie tun. Wenn Sie alle Eingaben vor der Ausgabe codieren, dann nicht, das ist es nicht. Wenn Sie jedoch versuchen, bestimmte Teile einer Zeichenkette in die weiße Liste aufzunehmen oder eine schlechtere schwarze Liste zu erstellen, kanalisieren Sie die Zeichenkette zuerst, weil beispielsweise
Canonical (glaube ich) bedeutet, dass Konsoleneingabe "typisches Verhalten" ist. Nicht-kanonisch bedeutet, dass Eingabe nicht standardisiert ist und spezielle Kenntnisse erfordert, wie das Eingabeverhalten von "vi" unter Linux.
Quelle
2009-07-22 18:54:43 djangofan
Aber wie gilt das für Websites und verwundbar sein? – predhme
Siehe Blowdarts Antwort für eine Definition von kanonischem –
Meine Antwort steht überhaupt nicht in Konflikt mit Blowdarts Antwort, außer dass ich es in einem Satz erklären konnte. Für Programmierer ist Effizienz der Schlüssel. – djangofan
Die folgende Erklärung ist von „Application Sicherheit und Entwicklung STIG“ Ergab here:
Quelle
2011-02-04 18:30:46 CrazyPyro
Canonicalization bedeutet, dass die empfangenen Daten auf ihre einfachste Form reduziert werden. Sie werden für die Validierung von Eingaben verwendet.
Quelle
2014-04-10 18:35:02 germangti