Doppelte Escape-Sequenzen beziehen sich auf Situationen, in denen bestimmte Zeichen beim Escapen einer Zeichenfolge mehrfach maskiert werden. Bei der URL-Codierung werden Sonderzeichen häufig mit Escapezeichen versehen, um sicherzustellen, dass sie korrekt übergeben und vom Server analysiert werden. Beispielsweise werden Leerzeichen als „%20“ maskiert, und das Pluszeichen (+) wird normalerweise nicht maskiert, da es ein Leerzeichen in der URL darstellt. Wenn der Server jedoch versehentlich Zeichen maskiert, die bereits erneut maskiert wurden, wird eine doppelte Escape-Sequenz generiert.
Der Server meldet, dass das Anforderungsfiltermodul so konfiguriert ist, dass es Anforderungen ablehnt, die doppelte Escape-Sequenzen enthalten. Dies kann bedeuten, dass der Server davon ausgeht, dass das Pluszeichen in der URL zweimal maskiert wurde, d. h. das Pluszeichen wird als %2B und maskiert dann erneut entkommen. Die Definition ist %252B, was als falsch angesehen wird. Der Server lehnt eine solche Anfrage möglicherweise ab, da sie zu Analysefehlern oder Sicherheitsproblemen führen kann.
Überarbeiten
applicationHost.config
Dateikonfiguration, bitte sichern Sie für alle Fälle die Datei, bevor Sie sie ändern.
%SystemDrive%\Windows\System32\inetsrv\config
Normalerweise finden Sie die entsprechende Site-Konfigurationsdatei im Ordner \applicationHost.config
und öffnen Sie es dann mit einem Texteditor (z. B. Notepad).<requestFiltering>
Teil. In IIS 7 blockiert das URLScan-Modul möglicherweise standardmäßig URL-Anfragen, die ein Pluszeichen enthalten.<requestFiltering>
Abschnitt können Sie eine hinzufügen <allowDoubleEscaping>
Element und setzt seinen Wert auf true
, um das Pluszeichen in der URL zuzulassen. Beispiel:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>