Qu'est-ce que la représentation canonique moyenne et sa vulnérabilité potentielle à des sites Web

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

  •  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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top