แก้ไข: 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 ถูกใช้ประโยชน์ ด้วยเหตุนี้คุณอาจได้รับข้อความแสดงข้อผิดพลาดหากคุณไม่ได้อัปเดตซอร์สโค้ดตามนั้น

โดยส่วนใหญ่แล้วจะมีผลบวกที่ผิดพลาดเมื่อเบราว์เซอร์เชื่อว่ามีการบังคับใช้การโจมตีแบบ 'cross-site scripting' การโจมตีเหล่านี้ส่วนใหญ่เกิดขึ้นเมื่อเบราว์เซอร์ถูกหลอกให้แสดง 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 แม้ว่าเราจะเพิ่มส่วนหัวที่ต้องการแล้วก็ตาม วิธีแก้ปัญหาอื่นคือการใช้ ' Request.Unvalidated ' ซึ่งจะเป็นอ็อบเจ็กต์ที่สร้างขึ้นโดยเฉพาะเพื่อจัดการกับการขอรับข้อมูล 'ไม่ปลอดภัย'

var code = Request.Unvalidated.Form ["code"];

สิ่งนี้อาจใช้ได้เฉพาะกับการตรวจสอบคำขอ ASP.NETเท่านั้น

หากคุณใช้เว็บฟอร์มคุณสามารถใช้:


  

หากคุณกำลังใช้MVCเราสามารถใช้ " [ValidateInput (false)] " ซึ่งเป็นแอตทริบิวต์บนคอนโทรลเลอร์ สิ่งนี้ทำเพื่อป้องกันการตรวจสอบความถูกต้อง

[ValidateInput (false)] การแปลง ActionResult สาธารณะ (คำขอ CodeRequest) {... }

การตั้งค่า IIS HttpRuntime

Visual Studio ใช้ IIS Express สำหรับบริการเว็บและเป็นหนึ่งในสถาปัตยกรรมที่ใช้กันมากที่สุดในปัจจุบัน เมื่อคุณใช้ ASP.NET IIS อาจบล็อกคำขอของคุณก่อนที่ ASP.NET จะได้รับการควบคุม เราจะพยายามปิดสิ่งนี้ในweb.configและพยายามรับพฤติกรรมเก่าโดยใช้รหัสต่อไปนี้:


  

หากเราไม่ทำเช่นนี้ IIS จะล้มเหลวและปฏิเสธคำขอก่อนที่จะส่งต่อไปยัง ASP.NET

หมายเหตุ:วิธีแก้ปัญหาเหล่านี้เป็นความคิดที่ดีหากเว็บไซต์ของคุณไม่สามารถเข้าถึงได้และทำให้คุณสูญเสีย คุณควรแก้ไขซอร์สโค้ดของคุณอยู่เสมอเพื่อให้คุณสามารถจัดการกับ XSS Auditor ได้อย่างเหมาะสม ใช้สิ่งเหล่านี้เพียงชั่วคราวจนกว่าคุณจะสามารถแก้ไขได้อย่างเหมาะสม

วิธีแก้ไข (หากคุณไม่ได้ดูแลเว็บไซต์)

หากคุณเป็นผู้ใช้ทั่วไปและไม่มีสิทธิ์เข้าถึงหรือดูแลเว็บไซต์คุณสามารถลองเปิด Chrome โดยไม่มีผู้ตรวจสอบ XSS เราจะสร้างทางลัดของ Google Chrome และเพิ่มแฟล็กที่จำเป็นเพื่อเปิดใช้งานในเงื่อนไขของเรา

  1. คลิกขวาที่ใดก็ได้บนเดสก์ทอปของคุณและเลือกใหม่> ทางลัด
  2. ตอนนี้วางโค้ดต่อไปนี้ตามเวอร์ชันของ 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
  1. ทางลัด Chrome ของคุณจะถูกสร้างขึ้น ตอนนี้ลองเข้าถึงเว็บไซต์และตรวจสอบว่าข้อความแสดงข้อผิดพลาดได้รับการแก้ไขหรือไม่

หมายเหตุ:วิธีนี้กำลังปิดใช้งาน XSS Auditor บนเบราว์เซอร์ของคุณซึ่งเป็นส่วนสำคัญของกลไกการรักษาความปลอดภัย โปรดดำเนินการด้วยความเสี่ยงของคุณเองและขอแนะนำให้คุณใช้คุณลักษณะนี้ชั่วคราวเท่านั้น