Chuỗi thoát kép đề cập đến các tình huống trong đó một số ký tự nhất định được thoát nhiều lần khi thoát khỏi một chuỗi. Trong mã hóa URL, các ký tự đặc biệt thường được thoát để đảm bảo rằng chúng được máy chủ truyền chính xác và phân tích cú pháp. Ví dụ: dấu cách được thoát dưới dạng "%20" và dấu cộng (+) thường không được thoát vì nó biểu thị khoảng trắng trong URL. Tuy nhiên, nếu máy chủ thoát nhầm các ký tự đã được thoát lại thì một chuỗi thoát kép sẽ được tạo.
Máy chủ báo cáo rằng mô-đun lọc yêu cầu được định cấu hình để từ chối các yêu cầu chứa chuỗi thoát kép, điều này có thể có nghĩa là máy chủ tin rằng dấu cộng trong URL đã được thoát hai lần, nghĩa là dấu cộng được thoát dưới dạng %2B và sau đó thoát lại Định nghĩa là% 252B, được coi là không chính xác. Máy chủ có thể từ chối yêu cầu đó vì nó có thể gây ra lỗi phân tích cú pháp hoặc vấn đề bảo mật.
Ôn lại
applicationHost.config
Cấu hình tệp, vui lòng sao lưu tệp trước khi sửa đổi nó để đề phòng.
%SystemDrive%\Windows\System32\inetsrv\config
Tìm tệp cấu hình trang web tương ứng trong thư mục, thường là \applicationHost.config
, rồi mở nó bằng trình soạn thảo văn bản (chẳng hạn như Notepad).<requestFiltering>
phần. Trong IIS 7, mô-đun URLScan có thể chặn các yêu cầu URL chứa dấu cộng theo mặc định.<requestFiltering>
phần này, bạn có thể thêm một <allowDoubleEscaping>
phần tử, đặt giá trị của nó thành true
, để cho phép dấu cộng trong URL. Ví dụ:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>