Le sequenze di double escape si riferiscono a situazioni in cui determinati caratteri vengono sottoposti a escape più volte durante l'escape di una stringa. Nella codifica URL, i caratteri speciali vengono spesso sottoposti a escape per garantire che vengano passati correttamente e analizzati dal server. Ad esempio, gli spazi vengono sottoposti a escape come "%20" e il segno più (+) in genere non viene sottoposto a escape poiché rappresenta uno spazio nell'URL. Tuttavia, se il server erroneamente esegue nuovamente l'escape di personaggi a cui è già stato eseguito l'escape, verrà generata una doppia sequenza di escape.
Il server segnala che il modulo di filtro delle richieste è configurato per rifiutare le richieste che contengono sequenze di escape doppie. Ciò potrebbe significare che il server ritiene che sia stato eseguito l'escape del segno più nell'URL due volte, ovvero che il segno più sia stato sottoposto a escape come %2B e. quindi è stato nuovamente eseguito l'escape. La definizione è %252B, che è considerata errata. Il server potrebbe rifiutare tale richiesta perché potrebbe causare errori di analisi o problemi di sicurezza.
Rivedere
applicationHost.config
Configurazione del file, eseguire il backup del file prima di modificarlo per ogni evenienza.
%SystemDrive%\Windows\System32\inetsrv\config
Trova il file di configurazione del sito corrispondente nella cartella, di solito \applicationHost.config
, quindi aprirlo con un editor di testo (come Blocco note).<requestFiltering>
parte. In IIS 7, il modulo URLScan potrebbe bloccare le richieste URL contenenti un segno più per impostazione predefinita.<requestFiltering>
sezione, puoi aggiungere un file <allowDoubleEscaping>
elemento, impostandone il valore su true
, per consentire il segno più nell'URL. Esempio:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>