Was bedeutet kanonische Darstellung bedeuten und deren mögliche Anfälligkeit für Websites

StackOverflow https://stackoverflow.com/questions/1167371

  •  19-09-2019
  •  | 
  •  

Frage

Ich suchte auf Google nach einem Sinn der kanonischen Darstellung und aufgedreht Dokumente, die völlig zu kryptisch sind. Kann mir jemand eine kurze Erklärung der kanonische Darstellung bieten und auch das, was in Websites kanonische Darstellung Angriffe einige typische Schwachstellen sind?

War es hilfreich?

Lösung

Kanonisierung ist der Prozess, mit dem Sie einen Eingang nehmen, wie ein Dateiname oder eine Zeichenfolge, und sie in eine Standarddarstellung drehen.

Zum Beispiel, wenn Sie Ihre Web-Anwendung erlaubt nur den Zugriff auf Dateien unter C: \ Websites \ mydomain dann in der Regel jeder Eingabe auf Dateinamen mit Bezug wird canonicalised ein physischer, direkter Weg zu sein, eher als eine, die relativen Pfade verwendet. Wenn Sie öffnen C wollte: \ Websites \ mydomain \ example \ example.txt einen Eingang in diese Funktion kann zB \ example.txt sein. Es ist schwer zu arbeiten, wenn dies außerhalb der Grenzen Ihrer Website geht, so dass die Kanonisierung Funktion im Anwendungsverzeichnis aussehen würde und dass die relativen Pfad in einen physischen ändern, C: \ Websites \ mydomain \ example \ example.txt. Das ist natürlich leichter zu überprüfen, wie Sie einfach eine Zeichenfolge vergleichen auf dem Start des Dateipfades zu tun.

Für HTML-Eingänge nehmen Sie Eingaben wie% 20 und canonicalise sie durch unencoding, so würde dies in einen Raum verwandeln. Dies ist eine gute Idee, da die Anzahl der verschiedenen Arten der Codierung sind zahlreich, Kanonisierung bedeutet, würden Sie nur die decodierte Zeichenfolge überprüfen, anstatt versuchen, alle Codierung Variationen abzudecken.

Grundsätzlich Sie Eingabe einnehmen, die logisch äquivalent ist und in eine Standardform umzuwandeln, die Sie dann wirken kann, auf.

Andere Tipps

Die folgende Erklärung ist von der "Application Security and Development STIG" gefunden hier :

  

3.11 kanonische Darstellung   Kanonische Darstellung Probleme auftreten   wenn der Name einer Ressource verwendet wird, um   Steuerressourcenzugriff. Es gibt   mehrere Methoden zur Darstellung   Ressourcennamen auf einem Computersystem.   Eine Anwendung nur auf eine Berufung   Ressourcenname zur Steuerung des Zugriffs kann   fälschlicherweise eine Zugriffskontrolle machen   Entscheidung, ob der Name in angegeben   ein unbekanntes Format.

     

Zum Beispiel,   in Windows kann notepad.exe sein   durch die folgende Datei repräsentiert und   Pfadnamen Kombinationen:

     

C: \ Windows \ System32 \ notepad.exe

     

% SystemRoot% \ System32 \ notepad.exe

     

\ \ C: \ Windows \ System32 \ notepad.exe

     

\ Host \ c $ \ Windows \ system32 \ notepad.exe

     

Eine Anwendung versucht, zu beschränken   Zugriff auf die Datei ausschließlich auf der Basis   Pfad und Dateinamen können nicht ordnungsgemäß   gewähren oder den Zugriff verweigern. Das gleiche Problem   kann auf andere benannte Ressourcen einzufrieren auf   ein System, wie eine Hart- und   Soft-Links, URL, Rohr, zu teilen,   Verzeichnis, Gerätename, oder innerhalb von Daten   Dateien, wenn alternative Codierung   Mechanismen werden mit den Daten verwendet wird.

     

  Folgende Artikel können Potential zeigen   kanonische Darstellung Fragen in einem   Anwendung:

     

• Zutrittskontrolle   Entscheidungen basierend auf einem Ressourcennamen.

     

• Ausfall einen Ressourcennamen zu reduzieren   seine kanonische Form vor dem Gebrauch.

     

  Um kanonische zu minimieren   Darstellung Probleme in der   Anwendung implementieren die folgenden   Verfahren:

     

• nicht allein auf Verlassen Sie sich   Ressourcennamen Zugriff zu steuern.

     

• Wenn   Ressourcennamen zu steuern,   Zugang, validieren, die Namen, um sicherzustellen,   sie sind im richtigen Format; ablehnen   alle Namen Einpassen des known-good nicht   Kriterien.

     

• Verwenden Sie Betriebssystem-basierten   Zugriffssteuerungsmechanismen, wie beispielsweise   Berechtigungen und ACLs.

Kanonisierung bedeutet, dass die Daten zu reduzieren, um seiner einfachsten Form erhalten, ist es für Input-Validierung verwendet wird.

Canonical (glaube ich) bedeutet, dass Konsole Eingang „typisches Verhalten“. Nicht-kanonische bedeutet, dass Eingang ist nicht-Standard und erfordert spezielle Kenntnisse, wie das Eingangsverhalten von „vi“ auf Linux.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top