Security Headers

Clickjacking: X-Frame-Options และ CSP frame-ancestors

A
admin
3 ธันวาคม 2568 0 ครั้ง
แชร์:

Clickjacking คืออะไร

Clickjacking คือการหลอกให้ผู้ใช้คลิกสิ่งที่มองเห็น ขณะที่หน้าเป้าหมายถูกซ้อนในเฟรมโปร่งใส OWASP อธิบายไว้ที่ Clickjacking

การป้องกันหลักคือห้ามให้หน้าอ่อนไหวถูกฝังในเฟรมของต้นทางอื่น

X-Frame-Options

กำหนดใน RFC 7034

  • DENY ห้ามฝังทุกกรณี
  • SAMEORIGIN ฝังได้เฉพาะต้นทางเดียวกัน
  • ALLOW-FROM ไม่เป็นที่รองรับสม่ำเสมอ หลีกเลี่ยง
code
X-Frame-Options: SAMEORIGIN

CSP frame-ancestors

CSP Level 3 กำหนด frame-ancestors ซึ่งระบุรายการต้นทางได้ละเอียดกว่า และในเบราว์เซอร์สมัยใหม่มีผลเหนือ X-Frame-Options เมื่อส่ง CSP นี้

code
Content-Security-Policy: frame-ancestors 'self'

ถ้าต้องฝังในพาร์ทเนอร์ที่รู้จัก ให้ระบุโฮสต์นั้นชัดเจน ไม่ใช้ * กับหน้าที่มีปุ่มยืนยันธุรกรรม

หน้าใดควรเข้มงวดเป็นพิเศษ

หน้าเข้าสู่ระบบ, ชำระเงิน, เปลี่ยนอีเมล/รหัสผ่าน และแผงผู้ดูแลระบบ ควรใช้ DENY หรือ frame-ancestors 'none' หากไม่จำเป็นต้องฝังเอง

สรุป

ใช้ frame-ancestors เป็นมาตรฐานหลัก และยังส่ง X-Frame-Options ได้สำหรับไคลเอนต์เก่า อย่าพึ่ง JavaScript frame-busting เป็นชั้นเดียว

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

หมวดหมู่: Security Headers