แก้ไข: ERR_BLOCKED_BY_XSS_AUDITOR

Chrome อยู่ในระหว่างการพัฒนาอย่างต่อเนื่องโดยมีเวอร์ชันใหม่ออกมาทุก ๆ ตอนเพื่อรวมคุณลักษณะใหม่และการปรับปรุงความปลอดภัย Chrome ไม่เพียง แต่ใช้สำหรับการเบราส์เท่านั้น มันยังใช้สำหรับเว็บเซอร์วิสจำนวนมากที่นักพัฒนาใช้ประโยชน์จาก

ERR_BLOCKED_BY_XSS_AUDITOR ใน 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 และเพิ่มการตั้งค่าสถานะที่จำเป็นเพื่อเปิดใช้งานในสภาพของเรา

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

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

บทความที่น่าสนใจ