แก้ไข: ERR_BLOCKED_BY_XSS_AUDITOR
Chrome อยู่ระหว่างการพัฒนาอย่างต่อเนื่องโดยมีเวอร์ชันใหม่ออกมาเป็นระยะเพื่อรวมคุณลักษณะใหม่ ๆ และการปรับปรุงความปลอดภัย Chrome ไม่ได้ใช้สำหรับการท่องเว็บเท่านั้น นอกจากนี้ยังใช้สำหรับบริการเว็บจำนวนมากที่นักพัฒนาใช้ประโยชน์
ด้วย Chrome 57 บิวด์ล่าสุดการตรวจจับผู้ตรวจสอบ XSS ได้รับการปรับปรุงให้ดีขึ้นอย่างมาก พวกเขามีแนวทางใหม่ที่กำหนดไว้เนื่องจากบริการบนเว็บหยุดทำงานและให้ข้อความแสดงข้อผิดพลาด ‘ERR_BLOCKED_BY_XSS_AUDITOR’.
ข้อความแสดงข้อผิดพลาดนี้เกิดขึ้นเมื่อเนื้อหา HTML ถูกส่งผ่านวิธี POST ภายในคำขอ Google Chrome มีคุณลักษณะ XSS Security ซึ่งจะวิเคราะห์ HTML ที่ส่งผ่านแบบฟอร์มและบล็อกคำขอเหล่านั้นเสมอ ด้วยวิธีนี้ แบบฟอร์มจะไม่ถูกส่งผ่านและหลีกเลี่ยงการใช้ประโยชน์จาก XSS
อะไรทำให้เกิดข้อความแสดงข้อผิดพลาด "ERR_BLOCKED_BY_XSS_AUDITOR" ใน Chrome
เช่นเดียวกับที่กล่าวไว้ก่อนหน้านี้ สร้างล่าสุด ของ Chrome ปรับปรุง XSS Auditor เพื่อไม่ให้ช่องโหว่ XSS ถูกใช้ประโยชน์ ด้วยเหตุนี้คุณอาจได้รับข้อความแสดงข้อผิดพลาดหากคุณไม่ได้อัปเดตซอร์สโค้ดตามนั้น
ส่วนใหญ่จะมี บวกเท็จ เมื่อเบราว์เซอร์เชื่อว่าการโจมตีแบบ "ข้ามไซต์สคริปต์" กำลังถูกบังคับ การโจมตีเหล่านี้ส่วนใหญ่เกิดขึ้นเมื่อเบราว์เซอร์ถูกหลอกให้แสดง JavaScript หรือ HTML ซึ่งไม่ได้เป็นส่วนหนึ่งของลักษณะการแสดงผลของเว็บไซต์
วิธีแก้ไข (หากคุณดูแลเว็บไซต์)
หากคุณเป็นผู้ดูแลเว็บไซต์และข้อความแสดงข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณมีการใช้งานตามปกติคุณสามารถลองลบออกได้โดยเพิ่มส่วนหัวของหน้าบางส่วนลงในส่วนหัว POST นี่เป็นการแก้ไขชั่วคราวจนกว่าคุณจะมีทางเลือกอื่นที่เหมาะสมซึ่งจัดการกับคำขอผู้ตรวจสอบ XSS ได้อย่างเหมาะสม
PHP
เพิ่มส่วนหัวต่อไปนี้ในไฟล์ PHP ของคุณ:
ส่วนหัว ('X-XSS-Protection: 0');
ASP.NET
ที่นี่เรากำลังปิดใช้งานการป้องกัน XSS ชั่วคราวจนกว่าคุณจะสามารถเพิ่มตัวจัดการที่เหมาะสมในซอร์สโค้ดของคุณได้
HttpContext.Response.AddHeader ("X-XSS-Protection", "0");
หากคุณกำลังกำหนดค่าไฟล์ Web.Config คุณสามารถเพิ่มรหัสต่อไปนี้แทน:
[...]
การตรวจสอบคำขอเซิร์ฟเวอร์ ASP.NET
ในบางกรณีเซิร์ฟเวอร์จะปฏิเสธคำขอ POST แม้ว่าเราจะเพิ่มส่วนหัวที่ต้องการแล้วก็ตาม วิธีแก้ปัญหาอื่นคือการใช้ "คำขอยังไม่ผ่านการตรวจสอบ’ซึ่งจะเป็นออบเจ็กต์ที่สร้างขึ้นโดยเฉพาะเพื่อรองรับการร้องขอข้อมูลที่ "ไม่ปลอดภัย"
var code = Request.Unvalidated.Form ["code"];
สิ่งนี้ส่วนใหญ่อาจใช้ได้เฉพาะกับ การตรวจสอบคำขอ ASP.NET.
หากคุณกำลังใช้ แบบฟอร์มเว็บ, คุณสามารถใช้ได้:
<@ Page validateRequest="false" %>
หากคุณใช้ประโยชน์จากไฟล์ MVCเราสามารถใช้ประโยชน์จาก[ValidateInput (เท็จ)]’ซึ่งเป็นแอตทริบิวต์บนคอนโทรลเลอร์ สิ่งนี้ทำเพื่อป้องกันการตรวจสอบความถูกต้อง
[ValidateInput(false)] การแปลง ActionResult สาธารณะ (คำขอ CodeRequest) { ... }
การตั้งค่า IIS HttpRuntime
IIS Express ถูกใช้โดย Visual studio สำหรับบริการเว็บและเป็นหนึ่งในสถาปัตยกรรมที่ใช้มากที่สุดจนถึงปัจจุบัน เมื่อคุณใช้ ASP.NET IIS อาจบล็อกคำขอของคุณก่อนที่ ASP.NET จะได้รับการควบคุม เราจะพยายามปิดสิ่งนี้ใน web.config และพยายามรับพฤติกรรมเก่าโดยใช้รหัสต่อไปนี้:
หากเราไม่ทำเช่นนี้ IIS จะล้มเหลวและปฏิเสธคำขอก่อนที่จะส่งต่อไปยัง ASP.NET
บันทึก: วิธีแก้ปัญหาเหล่านี้เป็นความคิดที่ดีหากเว็บไซต์ของคุณไม่สามารถเข้าถึงได้และทำให้คุณสูญเสีย คุณควร เสมอ แก้ไขซอร์สโค้ดของคุณ เพื่อให้คุณสามารถจัดการกับ XSS Auditor ได้อย่างถูกต้อง ใช้สิ่งเหล่านี้เพียงชั่วคราวจนกว่าคุณจะสามารถแก้ไขปัญหาได้อย่างเหมาะสม
วิธีแก้ไข (หากคุณไม่ได้ดูแลเว็บไซต์)
หากคุณเป็นผู้ใช้ทั่วไปและไม่มีสิทธิ์เข้าถึงหรือดูแลเว็บไซต์คุณสามารถลองเปิด Chrome โดยไม่มีผู้ตรวจสอบ XSS เราจะสร้างทางลัดของ Google Chrome และเพิ่มแฟล็กที่จำเป็นเพื่อเปิดใช้งานในเงื่อนไขของเรา
- คลิกขวาที่ใดก็ได้บนเดสก์ท็อปของคุณแล้วเลือก ใหม่> ทางลัด.
- วางโค้ดบรรทัดต่อไปนี้ตามเวอร์ชันของ Google Chrome ที่ติดตั้งบนคอมพิวเตอร์ของคุณ
สำหรับ Chrome 64 บิต
"C: \ Program Files \ Google \ Chrome \ Application \ chrome.exe" -disable-xss-audit
สำหรับ Chrome แบบ 32 บิต
"C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe" -disable-xss-audit
- ตอนนี้ทางลัด Chrome ของคุณจะถูกสร้างขึ้น ตอนนี้ให้ลองเข้าถึงเว็บไซต์และตรวจสอบว่าข้อความแสดงข้อผิดพลาดได้รับการแก้ไขหรือไม่
บันทึก: วิธีนี้เป็นการปิดใช้งาน XSS Auditor บนเบราว์เซอร์ของคุณซึ่งเป็นส่วนสำคัญของกลไกการรักษาความปลอดภัย โปรดดำเนินการด้วยความเสี่ยงของคุณเองและขอแนะนำให้คุณใช้คุณลักษณะนี้ชั่วคราวเท่านั้น