Chrome พัฒนาอย่างต่อเนื่อง มีรุ่นใหม่เผยแพร่เป็นครั้งคราวเพื่อเพิ่มฟีเจอร์และปรับปรุงความปลอดภัย Chrome ไม่ได้ใช้แค่ブラウジング แต่ยังใช้สำหรับบริการเว็บหลายอย่างที่นักพัฒนานำไปใช้

ใน Chrome 57 build ใหม่ XSS auditor detection ปรับปรุงมาก มีหลักเกณฑ์ใหม่ ทำให้บริการเว็บหยุดทำงานและแสดงข้อความข้อผิดพลาด 'ERR_BLOCKED_BY_XSS_AUDITOR'
ข้อความข้อผิดพลาดนี้เกิดเมื่อส่งเนื้อหา HTML ผ่านวิธี POST ภายในคำขอ Google Chrome มีฟีเจอร์ความปลอดภัย XSS ที่วิเคราะห์ HTML ที่ส่งผ่านฟอร์มเสมอ และบล็อกคำขอเหล่านั้น ทำให้ฟอร์มไม่ถูกส่งผ่าน และหลีกเลี่ยงการโจมตี XSS
สาเหตุของข้อความข้อผิดพลาด 'ERR_BLOCKED_BY_XSS_AUDITOR' ใน Chrome
เช่นที่กล่าวมา build ใหม่ ของ Chrome ปรับปรุง XSS Auditor ใหม่ทั้งหมด เพื่อป้องกันการใช้ประโยชน์จากช่องโหว่ XSS ด้วยเหตุนี้ คุณอาจได้รับข้อความข้อผิดพลาดหากยังไม่ได้อัปเดตซอร์สโค้ดตามนั้น
ส่วนใหญ่เป็น false positive เมื่อเบราว์เซอร์เชื่อว่ามีการบังคับโจมตี 'cross-site scripting' โจมตีเหล่านี้เกิดหลักเมื่อเบราว์เซอร์ถูกหลอกให้เรนเดอร์ JavaScript หรือ HTML ที่ไม่ใช่ส่วนของการแสดงผลเว็บไซต์
วิธีแก้ (หากคุณดูแลเว็บไซต์)
หากคุณเป็นผู้ดูแลเว็บไซต์ และข้อผิดพลาดนี้เกิดขึ้นขณะใช้งานปกติ คุณสามารถลองแก้ไขโดยเพิ่มส่วนหัวหน้าเว็บ (page headers) เข้าไปใน POST headers นี่เป็นวิธีแกชั่วคราวจนกว่าจะมีทางเลือกที่เหมาะสมซึ่งจัดการคำขอ XSS Auditor ได้อย่างถูกต้อง
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 Server Request Validation
ในบางกรณี เซิร์ฟเวอร์จะปฏิเสธคำขอ POST แม้เราจะเพิ่มส่วนหัวที่ต้องการแล้ว วิธีแก้อีกอย่างคือใช้ 'Request.Unvalidated' ซึ่งเป็นออบเจกต์สร้างขึ้นเฉพาะเพื่อจัดการการรับข้อมูลคำขอ 'unsafe'
var code = Request.Unvalidated.Form["code"];
นี่อาจทำงานได้เฉพาะ ASP.NET Request Validation เท่านั้น
หากใช้ web forms ให้ใช้:
<@ Page validateRequest="false" %>
หากใช้ MVC ให้ใช้ '[ValidateInput(false)]' ซึ่งเป็นแอตทริบิวต์บนคอนโทรลเลอร์ เพื่อป้องกันการตรวจสอบ
[ValidateInput(false)] public ActionResult Convert(CodeRequest request) { ... }IIS HttpRuntime Settings
IIS Express ใช้โดย Visual Studio สำหรับบริการเว็บ และเป็นสถาปัตยกรรมที่ใช้กันมากที่สุด เมื่อใช้ ASP.NET IIS อาจบล็อกคำขอของคุณก่อนที่ ASP.NET จะได้ควบคุม เราจะลองปิดสิ่งนี้ใน web.config และพยายามได้พฤติกรรมเดิมด้วยโค้ดต่อไปนี้:
<httpRuntime requestValidationMode="2.0"/>
หากไม่ทำเช่นนี้ IIS จะล้มเหลวและปฏิเสธคำขอก่อนที่จะส่งต่อให้ ASP.NET
หมายเหตุ: วิธีแก้ชั่วคราวเหล่านี้เหมาะสมหากเว็บไซต์เข้าถึงไม่ได้และก่อให้เกิดความสูญเสีย คุณควร เสมอ ปรับปรุงซอร์สโค้ดเพื่อจัดการ XSS Auditor ได้อย่างถูกต้อง ใช้วิธีเหล่านี้ชั่วคราวเท่านั้นจนกว่าจะแก้ไขได้อย่างถูกต้อง
วิธีแก้ (หากคุณไม่ได้ดูแลเว็บไซต์)
หากคุณเป็นผู้ใช้ทั่วไป ไม่มีสิทธิ์เข้าถึงหรือดูแลเว็บไซต์ คุณสามารถลองเปิด Chrome โดยไม่มี XSS Auditor เราจะสร้าง Shortcut ของ Google Chrome และเพิ่มแฟล็กที่จำเป็นเพื่อเปิดในเงื่อนไขของเรา
- คลิกขวาที่เดสก์ท็อป ใดๆ เลือก New > Shortcut
- วางโค้ดต่อไปนี้ตามรุ่น Google Chrome ที่ติดตั้งบนคอมพิวเตอร์
สำหรับ Chrome 64-bit
"C:\Program Files\Google\Chrome\Application\chrome.exe" -disable-xss-auditor
สำหรับ Chrome 32-bit
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -disable-xss-auditor

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