Double Escape Sequence หมายถึงสถานการณ์ที่อักขระบางตัวถูก Escape หลายครั้งเมื่อ Escape สตริง ในการเข้ารหัส URL อักขระพิเศษมักจะหลบหนีเพื่อให้แน่ใจว่าถูกส่งผ่านอย่างถูกต้องและแยกวิเคราะห์โดยเซิร์ฟเวอร์ ตัวอย่างเช่น ช่องว่างจะถูกหลีกเป็น "%20" และโดยปกติแล้วเครื่องหมายบวก (+) จะไม่ถูกหลีกเลี่ยงเนื่องจากเป็นช่องว่างใน URL อย่างไรก็ตาม หากเซิร์ฟเวอร์ Escape อักขระที่ถูก Escape ไปแล้วอีกครั้งโดยไม่ตั้งใจ ระบบจะสร้างลำดับ Escape สองครั้ง
เซิร์ฟเวอร์รายงานว่าโมดูลการกรองคำขอได้รับการกำหนดค่าให้ปฏิเสธคำขอที่มีลำดับหลีกคู่ ซึ่งอาจหมายความว่าเซิร์ฟเวอร์เชื่อว่าเครื่องหมายบวกใน URL ได้รับการหลีกสองครั้ง นั่นคือ เครื่องหมายบวกถูกหลีกเป็น %2B และ แล้วหนีออกมาอีกครั้ง คำจำกัดความคือ %252B ซึ่งถือว่าไม่ถูกต้อง เซิร์ฟเวอร์อาจปฏิเสธคำขอดังกล่าวเนื่องจากอาจทำให้เกิดข้อผิดพลาดในการแยกวิเคราะห์หรือปัญหาด้านความปลอดภัย
ปรับปรุงใหม่
applicationHost.config
การกำหนดค่าไฟล์ โปรดสำรองไฟล์ก่อนทำการแก้ไข เผื่อไว้
%SystemDrive%\Windows\System32\inetsrv\config
โดยปกติแล้วค้นหาไฟล์การกำหนดค่าไซต์ที่เกี่ยวข้องภายใต้โฟลเดอร์ \applicationHost.config
แล้วเปิดด้วยโปรแกรมแก้ไขข้อความ (เช่น Notepad)<requestFiltering>
ส่วนหนึ่ง. ใน IIS 7 โมดูล URLScan อาจบล็อกคำขอ URL ที่มีเครื่องหมายบวกตามค่าเริ่มต้น<requestFiltering>
ส่วนคุณสามารถเพิ่ม <allowDoubleEscaping>
องค์ประกอบตั้งค่าเป็น true
เพื่ออนุญาตเครื่องหมายบวกใน URL ตัวอย่าง:<security> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security>