Web Security

Mixed Content บนหน้า HTTPS

A
admin
8 มกราคม 2569 0 ครั้ง
แชร์:

Mixed content คืออะไร

เมื่อเอกสารถูกโหลดผ่าน HTTPS แต่ไปดึงสคริปต์, สไตล์, iframe หรือสื่อผ่าน HTTP เรียกว่า mixed content ช่อง HTTP นั้นไม่ได้อยู่ภายใต้การปกป้องเดียวกับหน้าหลัก ผู้โจมตีบนเครือข่ายอาจเปลี่ยนสคริปต์ได้

คำจำกัดความและพฤติกรรมเบราว์เซอร์อยู่ที่ MDN: Mixed content และ WHATWG Mixed Content

แอ็กทีฟกับพาสซีฟ

  • แอ็กทีฟ: สคริปต์, stylesheet, iframe, fetch, XHR, WebSocket — เบราว์เซอร์สมัยใหม่บล็อกเป็นค่าเริ่มต้น
  • พาสซีฟ: รูป, เสียง, วิดีโอ — บางบริบทเคยอนุญาตแต่ถูกจำกัดมากขึ้น และยังทำลายแม่กุญแจความปลอดภัยของหน้า

Chrome และเบราว์เซอร์อื่นยังมี upgrade ที่พยายามเปลี่ยนคำขอพาสซีฟเป็น HTTPS อัตโนมัติ แต่เว็บไม่ควรถือว่ามีชั้นนี้อยู่เสมอ

วิธีแก้ในเว็บของตนเอง

  • ใช้ URL แบบ scheme-relative (//cdn.example.com/app.js) หรือ HTTPS เต็ม
  • ตรวจ Content-Security-Policy upgrade-insecure-requests เป็นชั้นเสริม ไม่ใช่ทางลัดระยะยาว
  • ตรวจคอนโซลเบราว์เซอร์และรายงาน CSP เมื่อมีคำขอที่ถูกบล็อก

HSTS ช่วยให้คำขอถัดไปไปโดเมนตนเองเป็น HTTPS แต่ไม่แก้ทรัพยากรบุคคลที่สามที่ไม่มี HTTPS

สรุป

หน้า HTTPS ที่ยังดึงสคริปต์ผ่าน HTTP ไม่ถือว่าปลอดภัย แก้ที่แหล่งที่มาของ URL ให้เป็น HTTPS ทั้งชุด

แหล่งอ้างอิง

หมวดหมู่: Web Security