วิธีป้องกัน Clickjacking บน IIS Windows Server 2022 เพิ่มความปลอดภัยเว็บไซต์ตามมาตรฐานสากล
Clickjacking เป็นหนึ่งในช่องโหว่ด้านความปลอดภัยของเว็บไซต์ที่ถูกมองข้ามบ่อยที่สุด แม้เว็บไซต์จะมี SSL Certificate, HTTPS และ Firewall ครบถ้วนแล้วก็ตาม แต่หากไม่มีการป้องกัน Clickjacking ผู้โจมตีอาจหลอกให้ผู้ใช้งานคลิกปุ่มหรือเมนูบนเว็บไซต์โดยไม่รู้ตัว
การโจมตีลักษณะนี้สามารถนำไปสู่การเปลี่ยนรหัสผ่าน การโอนเงิน การกดอนุมัติคำสั่ง หรือการเปิดเผยข้อมูลสำคัญได้ โดยเฉพาะเว็บไซต์ที่มีระบบสมาชิก ระบบหลังบ้าน หรือระบบธุรกรรมออนไลน์
บทความนี้จะอธิบายวิธีป้องกัน Clickjacking บน IIS Windows Server 2022 อย่างละเอียด พร้อมแนวทางที่ใช้จริงในองค์กร
🔐 Clickjacking คืออะไร
Clickjacking คือการโจมตีที่ผู้โจมตีนำเว็บไซต์จริงไปซ้อนอยู่ภายใน
iframe
จากนั้นสร้างหน้าเว็บปลอมทับด้านบน
เพื่อหลอกให้ผู้ใช้งานคลิก
ผู้ใช้คิดว่ากำลังกดปุ่มหนึ่ง
แต่จริง ๆ แล้วกำลังกดปุ่มบนเว็บไซต์จริงที่ซ่อนอยู่
🚨 ตัวอย่าง Clickjacking
สมมุติว่ามีหน้า
https://example.com/admin
ผู้โจมตีสร้างเว็บปลอม
และฝังหน้าเว็บจริงไว้ใน iframe
เมื่อผู้ใช้งานคลิก
รับของฟรี
อาจกลายเป็น
ลบบัญชีผู้ใช้
หรือ
เปลี่ยนรหัสผ่าน
โดยไม่รู้ตัว
🎯 เว็บไซต์ประเภทใดเสี่ยงที่สุด
🏦 Internet Banking
🛒 E-Commerce
👥 ระบบสมาชิก
⚙️ Admin Panel
📊 Dashboard
💳 Payment Gateway
🔍 วิธีตรวจสอบว่าเว็บไซต์เสี่ยงหรือไม่
เปิด Browser
กด
F12
ตรวจสอบ Response Header
หากไม่มี
X-Frame-Options
หรือ
Content-Security-Policy
เว็บไซต์อาจเสี่ยงต่อ Clickjacking
🛡️ วิธีป้องกัน Clickjacking ด้วย X-Frame-Options
เป็นวิธีที่ง่ายและนิยมมากที่สุด
เปิด
IIS Manager
เลือกเว็บไซต์
เปิด
HTTP Response Headers
คลิก
Add
Header Name
X-Frame-Options
Value
SAMEORIGIN
กด
OK
🔒 ค่า X-Frame-Options แต่ละแบบ
DENY
DENY
ไม่อนุญาตให้ฝังเว็บไซต์ใน iframe ทุกกรณี
SAMEORIGIN
SAMEORIGIN
อนุญาตเฉพาะเว็บไซต์เดียวกัน
ALLOW-FROM
ไม่แนะนำแล้ว
Browser ส่วนใหญ่เลิกสนับสนุน
🚀 วิธีป้องกันด้วย Content-Security-Policy
ปัจจุบันถือเป็นวิธีที่ทันสมัยกว่า
เพิ่ม Header
Content-Security-Policy
Value
frame-ancestors 'self';
หมายถึง
อนุญาตให้ฝังเฉพาะเว็บไซต์เดียวกัน
⚙️ เพิ่มผ่าน web.config
ตัวอย่าง
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options"
value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
หรือ
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy"
value="frame-ancestors 'self';" />
</customHeaders>
</httpProtocol>
</system.webServer>
🔍 วิธีตรวจสอบหลังตั้งค่า
เปิดเว็บไซต์
https://example.com
กด
F12
เลือก
Network
ดู Response Headers
ควรพบ
X-Frame-Options
หรือ
Content-Security-Policy
🌐 ตรวจสอบผ่าน PowerShell
Invoke-WebRequest `
https://example.com
ตรวจสอบ Header
❌ ปัญหาที่พบบ่อย
เว็บไซต์ภายในใช้ iframe
เปิด DENY แล้วใช้งานไม่ได้
Dashboard Embed ไม่ทำงาน
เพราะ X-Frame-Options บล็อก
CSP เข้มเกินไป
Widget ภายนอกโหลดไม่ได้
Header ซ้ำ
กำหนดทั้ง IIS และ Application
📋 Security Checklist
✅ HTTPS เปิดใช้งาน
✅ HSTS เปิดใช้งาน
✅ X-Frame-Options
✅ CSP Frame-Ancestors
✅ TLS 1.2 หรือ TLS 1.3
✅ Security Headers ครบ
🔐 X-Frame-Options vs CSP
| รายการ | X-Frame-Options | CSP |
|---|---|---|
| ติดตั้งง่าย | ✅ | ⚠️ |
| รองรับ Browser เก่า | ✅ | ❌ |
| ยืดหยุ่น | ❌ | ✅ |
| มาตรฐานใหม่ | ❌ | ✅ |
แนวทางที่นิยม
ใช้ทั้งสองพร้อมกัน
🛡️ Best Practices
① เปิด X-Frame-Options
② ใช้ CSP frame-ancestors
③ ทดสอบทุกระบบหลังเปิดใช้งาน
④ ตรวจสอบ Security Header ทุกเดือน
⑤ จำกัด iframe เฉพาะที่จำเป็น
⑥ ตรวจสอบ Security Scanner เป็นประจำ
ทีมงาน comsiam มักกำหนด X-Frame-Options และ Content-Security-Policy เป็นค่ามาตรฐานของ IIS Windows Server 2022 ทุกเครื่องก่อนนำขึ้น Production เพื่อป้องกัน Clickjacking และช่วยเพิ่มคะแนน Security Audit ของเว็บไซต์
🎯 สรุป
Clickjacking เป็นช่องโหว่ที่อาจทำให้ผู้ใช้งานถูกหลอกให้ดำเนินการสำคัญบนเว็บไซต์โดยไม่รู้ตัว แม้เว็บไซต์จะใช้ HTTPS และ SSL Certificate แล้วก็ตาม
การป้องกันที่มีประสิทธิภาพบน IIS Windows Server 2022 คือการเปิดใช้งาน X-Frame-Options และ Content-Security-Policy (frame-ancestors) ซึ่งสามารถทำได้ง่ายผ่าน IIS Manager หรือ web.config ช่วยลดความเสี่ยงด้านความปลอดภัย และทำให้เว็บไซต์ผ่านมาตรฐาน Security ที่องค์กรระดับมืออาชีพใช้งานอยู่ในปัจจุบัน