Qu'est-ce que la représentation canonique moyenne et sa vulnérabilité potentielle à des sites Web
-
19-09-2019 - |
Question
J'ai cherché sur Google pour un sens de la représentation canonique et des documents qui tournai sont tout à fait trop cryptique. Quelqu'un peut-il fournir une explication rapide de la représentation canonique et aussi ce que quelques vulnérabilités typiques dans les sites Web aux attaques de représentation canonique?
La solution
canonicalisation est le processus par lequel vous prenez une entrée, comme un nom de fichier, ou une chaîne, et la transformer en une représentation standard.
Par exemple, si votre application Web permet uniquement l'accès aux fichiers sous C: \ sites \ mondomaine alors généralement une entrée faisant référence aux noms de fichiers est canonicalised être un chemin physique, direct, plutôt que celui qui utilise des chemins relatifs. Si vous vouliez ouvrir C: \ sites \ mydomain \ exemple \ exemple.txt une entrée dans cette fonction peut être par exemple \ exemple.txt. Il est difficile de travailler si cela va en dehors des limites de votre site web, de sorte que la fonction canonicalisation examinerait le répertoire des applications et changer ce chemin relatif en physique, C: \ sites \ mydomain \ exemple \ exemple.txt. Ceci est évidemment plus facile de vérifier que vous faites simplement une chaîne de comparaison sur le début du chemin du fichier.
Pour les entrées HTML que vous prenez des entrées comme% 20 et les unencoding par leur forme canonique, donc cela se transformerait en un espace. Ceci est une bonne idée que le nombre de façons différentes de codage sont nombreux, canonicalisation signifie que vous vérifiez la seule chaîne décodée, plutôt que d'essayer de couvrir toutes les variantes d'encodage.
Fondamentalement, vous prenez entrée qui est logiquement équivalent et les convertir en un formulaire standard que vous pouvez ensuite agir.
Autres conseils
L'explication suivante est de la "STIG Application Security et le développement" trouvé ici :
3.11 Représentation Canonique les questions de représentation Canonical se posent lorsque le nom d'une ressource est utilisée pour contrôle d'accès des ressources. Il y a plusieurs modes de représentation Les noms de ressources sur un système informatique. Une demande en se fondant uniquement sur une nom de ressource pour contrôler l'accès peut faire correctement un contrôle d'accès décision si le nom est spécifié dans un format non reconnu.
Par exemple, dans Windows, notepad.exe peut être représenté par le fichier suivant et combinaisons de nom de chemin:
C: \ Windows \ System32 \ notepad.exe
% SystemRoot% \ System32 \ notepad.exe
\ \ C: \ Windows \ System32 \ notepad.exe
\ host \ c $ \ Windows \ system32 \ notepad.exe
Une demande de tenter de limiter l'accès au fichier basé uniquement sur la fichier chemin et le nom peut mal accorder ou refuser l'accès. La même question peut demander à d'autres ressources nommées sur un système, tel qu'un matériel et liaisons souples, URL, pipe, part, répertoire, nom du périphérique, ou dans les données fichiers, si le codage alternatif mécanismes sont utilisés avec les données.
les éléments suivants peuvent indiquer le potentiel les questions canoniques de représentation dans un Application:
• Contrôle d'accès des décisions fondées sur un nom de la ressource.
• Le défaut de réduire un nom de ressource sa forme canonique avant utilisation.
afin de minimiser canonique les questions de représentation dans la l'application, mettre en œuvre les éléments suivants procédures:
• Ne vous fiez pas uniquement sur noms de ressources pour contrôler l'accès.
• Si en utilisant des noms de ressources pour contrôler l'accès, valider les noms pour assurer ils sont dans le format approprié; rejeter tous les noms qui ne figure la bonne connue Critères.
• Utilisation du système d'exploitation à base des mécanismes de contrôle d'accès, tels que les autorisations et les ACLs.
canonicalisation signifie réduire les données reçues à sa forme la plus simple, il est utilisé pour la validation d'entrée.
Canonique (je pense) signifie que l'entrée de la console est « comportement typique ». Non canonique signifie que l'entrée est non standard et nécessite des connaissances particulières, telles que le comportement d'entrée « vi » sur linux.