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