이중 이스케이프 시퀀스는 문자열을 이스케이프할 때 특정 문자가 여러 번 이스케이프되는 상황을 나타냅니다. URL 인코딩에서는 특수 문자가 서버에서 올바르게 전달되고 구문 분석되도록 하기 위해 종종 이스케이프 처리됩니다. 예를 들어 공백은 "%20"으로 이스케이프되며 더하기 기호(+)는 URL의 공백을 나타내기 때문에 일반적으로 이스케이프되지 않습니다. 그러나 서버가 이미 이스케이프된 문자를 실수로 다시 이스케이프하는 경우 이중 이스케이프 시퀀스가 생성됩니다.
서버는 요청 필터링 모듈이 이중 이스케이프 시퀀스가 포함된 요청을 거부하도록 구성되었다고 보고합니다. 이는 서버가 URL의 더하기 기호가 두 번 이스케이프되었다고 믿는 것을 의미할 수 있습니다. 즉, 더하기 기호는 %2B로 이스케이프되었으며 그런 다음 다시 이스케이프되었습니다. 정의는 %252B이며 이는 잘못된 것으로 간주됩니다. 구문 분석 오류나 보안 문제가 발생할 수 있으므로 서버는 이러한 요청을 거부할 수 있습니다.
개정하다
applicationHost.config
파일 구성은 만일을 대비해 수정하기 전 반드시 파일을 백업해 두시기 바랍니다.
%SystemDrive%\Windows\System32\inetsrv\config
일반적으로 폴더 아래에서 해당 사이트 구성 파일을 찾습니다. \applicationHost.config
을 클릭한 다음 텍스트 편집기(예: 메모장)로 엽니다.<requestFiltering>
부분. IIS 7에서 URLScan 모듈은 기본적으로 더하기 기호가 포함된 URL 요청을 차단할 수 있습니다.<requestFiltering>
섹션에 <allowDoubleEscaping>
요소, 해당 값을 다음으로 설정 true
, URL에 더하기 기호를 허용합니다. 예:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>