Podwójne sekwencje specjalne odnoszą się do sytuacji, w których podczas ucieczki z ciągu znaków następuje wielokrotna ucieczka z określonych znaków. W kodowaniu adresów URL znaki specjalne są często stosowane w celu zapewnienia prawidłowego przekazania i przeanalizowania przez serwer. Na przykład spacje są zmieniane jako „%20”, a znak plus (+) zwykle nie jest zmieniany, ponieważ reprezentuje spację w adresie URL. Jeśli jednak serwer omyłkowo użyje znaków ucieczki, które już zostały zmienione, zostanie wygenerowana podwójna sekwencja ucieczki.
Serwer zgłasza, że moduł filtrowania żądań jest skonfigurowany tak, aby odrzucał żądania zawierające podwójne sekwencje specjalne, co może oznaczać, że serwer uważa, że znak plus w adresie URL został zmieniony dwukrotnie, to znaczy znak plus został zmieniony jako %2B i następnie ponownie uciekł. Definicja to %252B i jest uważana za niepoprawną. Serwer może odrzucić takie żądanie, ponieważ może to spowodować błędy analizy lub problemy z bezpieczeństwem.
Poprawiać
applicationHost.config
Konfiguracja pliku, na wszelki wypadek wykonaj kopię zapasową pliku przed jego modyfikacją.
%SystemDrive%\Windows\System32\inetsrv\config
Zwykle znajdź odpowiedni plik konfiguracyjny witryny w folderze \applicationHost.config
, a następnie otwórz go za pomocą edytora tekstu (takiego jak Notatnik).<requestFiltering>
część. W IIS 7 moduł URLScan może domyślnie blokować żądania URL zawierające znak plus.<requestFiltering>
sekcję, możesz dodać <allowDoubleEscaping>
element, ustawiając jego wartość na true
, aby zezwolić na znak plus w adresie URL. Przykład:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>