Les séquences d'échappement doubles font référence à des situations dans lesquelles certains caractères sont échappés plusieurs fois lors de l'échappement d'une chaîne. Lors du codage d'URL, les caractères spéciaux sont souvent échappés pour garantir qu'ils sont correctement transmis et analysés par le serveur. Par exemple, les espaces sont échappés sous la forme « %20 » et le signe plus (+) n'est généralement pas échappé car il représente un espace dans l'URL. Cependant, si le serveur échappe par erreur des caractères qui ont déjà été échappés à nouveau, une double séquence d'échappement sera générée.
Le serveur signale que le module de filtrage des requêtes est configuré pour rejeter les requêtes contenant des séquences d'échappement doubles, ce qui peut signifier que le serveur pense que le signe plus dans l'URL a été échappé deux fois, c'est-à-dire que le signe plus est échappé sous la forme %2B et puis échappé à nouveau. La définition est %252B, ce qui est considéré comme incorrect. Le serveur peut rejeter une telle demande car elle pourrait provoquer des erreurs d'analyse ou des problèmes de sécurité.
Réviser
applicationHost.config
Configuration du fichier, veuillez sauvegarder le fichier avant de le modifier au cas où.
%SystemDrive%\Windows\System32\inetsrv\config
Recherchez le fichier de configuration du site correspondant dans le dossier, généralement \applicationHost.config
, puis ouvrez-le avec un éditeur de texte (tel que le Bloc-notes).<requestFiltering>
partie. Dans IIS 7, le module URLScan peut bloquer les requêtes URL contenant un signe plus par défaut.<requestFiltering>
section, vous pouvez ajouter un <allowDoubleEscaping>
élément, en définissant sa valeur sur true
, pour autoriser le signe plus dans l'URL. Exemple:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>