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