A dupla menekülési szekvenciák olyan helyzetekre utalnak, amikor bizonyos karaktereket többször is meg kell szüntetni egy karakterlánc kilépésekor. Az URL-kódolás során a speciális karaktereket gyakran fel kell cserélni annak érdekében, hogy a szerver helyesen adja át és elemezze azokat. Például a szóközök „%20”-ként vannak megtisztítva, és a pluszjel (+) általában nem kerül megjelölésre, mert szóközt jelent az URL-ben. Ha azonban a szerver tévedésből kihagyja azokat a karaktereket, amelyeket már újra megszabadított, akkor dupla escape szekvencia jön létre.
A kiszolgáló jelenti, hogy a kérésszűrő modul úgy van beállítva, hogy elutasítsa azokat a kéréseket, amelyek kettős escape szekvenciát tartalmaznak. Ez azt jelentheti, hogy a kiszolgáló úgy gondolja, hogy az URL-ben szereplő pluszjel kétszer lett megszabadítva, vagyis a pluszjel %2B-ként van megszabadítva. majd ismét kikerült a definíció: %252B, ami helytelennek tekinthető. A szerver elutasíthatja az ilyen kérelmet, mert az elemzési hibákat vagy biztonsági problémákat okozhat.
Felülvizsgál
applicationHost.config
Fájlkonfiguráció, kérjük, készítsen biztonsági másolatot a fájlról, mielőtt módosítaná, minden esetre.
%SystemDrive%\Windows\System32\inetsrv\config
Általában keresse meg a megfelelő webhely-konfigurációs fájlt a mappa alatt \applicationHost.config
, majd nyissa meg egy szövegszerkesztővel (például Jegyzettömbbel).<requestFiltering>
rész. Az IIS 7-ben az URLScan modul alapértelmezés szerint blokkolhatja a pluszjelet tartalmazó URL-kéréseket.<requestFiltering>
szakaszban hozzáadhat a <allowDoubleEscaping>
elemre állítva az értékét true
, hogy engedélyezze a pluszjelet az URL-ben. Példa:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>