วิธีป้องกัน XSS บน IIS Windows Server 2022 สำหรับเว็บไซต์องค์กรและระบบภายใน

 Cross-Site Scripting (XSS) เป็นหนึ่งในช่องโหว่ด้านความปลอดภัยของเว็บไซต์ที่พบได้บ่อยที่สุดในโลก และยังคงติดอันดับความเสี่ยงของ OWASP มาอย่างต่อเนื่อง

แม้ IIS Windows Server 2022 จะมีระบบความปลอดภัยที่ดีอยู่แล้ว แต่หากเว็บไซต์หรือ Web Application ไม่มีการป้องกัน XSS อย่างเหมาะสม ผู้โจมตีอาจสามารถแทรก JavaScript อันตรายเข้าไปในหน้าเว็บ เพื่อขโมย Session, Cookie, Token หรือหลอกให้ผู้ใช้งานดำเนินการบางอย่างโดยไม่รู้ตัว

บทความนี้จะแนะนำวิธีลดความเสี่ยงจาก XSS บน IIS Windows Server 2022 ทั้งในระดับ Web Server และแนวทางที่นักพัฒนาควรใช้งานร่วมกัน


🔐 XSS คืออะไร

XSS ย่อมาจาก

Cross-Site Scripting

เป็นการโจมตีโดยฝัง Script อันตราย

เข้าไปในหน้าเว็บไซต์


เมื่อผู้ใช้งานเปิดหน้าเว็บ

Script จะทำงานบน Browser ของผู้ใช้งาน

แทนที่จะทำงานบน Server


🚨 ผลกระทบของ XSS

🍪 ขโมย Cookie


🔑 ขโมย Session Login


👤 ปลอมตัวเป็นผู้ใช้งาน


📧 ขโมยข้อมูลส่วนตัว


💳 ขโมยข้อมูลทางธุรกิจ


⚠️ Redirect ไปเว็บปลอม


📋 ประเภทของ XSS

① Stored XSS

Script ถูกบันทึกใน Database


② Reflected XSS

Script มาจาก URL


③ DOM-Based XSS

เกิดจาก JavaScript ฝั่ง Client


🖥️ วิธีป้องกัน XSS ด้วย Security Header

เปิด

IIS Manager

เลือกเว็บไซต์


เปิด

HTTP Response Headers

เพิ่ม Content-Security-Policy

Header

Content-Security-Policy

Value

default-src 'self';
script-src 'self';
object-src 'none';

ประโยชน์

ช่วยจำกัดการโหลด Script

จากแหล่งที่ไม่เชื่อถือ


🛡️ เพิ่ม X-Content-Type-Options

Header

X-Content-Type-Options

Value

nosniff

ป้องกัน Browser เดาประเภทไฟล์ผิด


🔒 เพิ่ม Referrer-Policy

Header

Referrer-Policy

Value

strict-origin-when-cross-origin

ลดการรั่วไหลของข้อมูล


⚙️ เพิ่มผ่าน web.config

ตัวอย่าง

<system.webServer>
 <httpProtocol>
  <customHeaders>

   <add name="X-Content-Type-Options"
   value="nosniff" />

   <add name="Referrer-Policy"
   value="strict-origin-when-cross-origin" />

   <add name="Content-Security-Policy"
   value="default-src 'self';" />

  </customHeaders>
 </httpProtocol>
</system.webServer>

🚀 ใช้ Request Filtering

IIS มีฟีเจอร์

Request Filtering

ช่วยกรอง Request ที่ผิดปกติ


เปิด

IIS Manager

เลือกเว็บไซต์


เปิด

Request Filtering

สามารถกำหนด

  • URL

  • Extension

  • Query String

ที่ไม่อนุญาตได้


🔍 จำกัด Dangerous Characters

ตัวอย่าง

<
>
script
javascript:

สามารถกรองได้ผ่าน

Application Layer


🌐 แนวทางสำหรับนักพัฒนา

แม้ IIS จะช่วยได้

แต่การป้องกัน XSS หลัก

ต้องอยู่ที่ Source Code


HTML Encode

ตัวอย่าง

แทน

<script>

ควรแสดงเป็น

&lt;script&gt;

Validate Input

ตรวจสอบข้อมูลทุกช่อง

ก่อนบันทึกลง Database


Escape Output

ก่อนแสดงผลบนหน้าเว็บ


หลีกเลี่ยง Inline JavaScript


🔒 เปิด HttpOnly Cookie

ช่วยป้องกัน Script อ่าน Cookie


ใน IIS

สามารถกำหนด

HttpOnly

ให้ Session Cookie


🔐 เปิด Secure Cookie

Cookie จะถูกส่งเฉพาะ HTTPS


ช่วยลดความเสี่ยงจากการดักจับข้อมูล


⚡ เปิด SameSite Cookie

กำหนด

SameSite=Strict

ช่วยลดการโจมตีร่วมกับ CSRF


🔍 ตรวจสอบผ่าน Browser

เปิด

https://example.com

กด

F12

ดู

Response Headers

ตรวจสอบ CSP

และ Security Headers


🧪 ตรวจสอบผ่าน PowerShell

Invoke-WebRequest `
https://example.com

ตรวจสอบ Header

ที่ส่งกลับ


❌ ปัญหาที่พบบ่อย

CSP เข้มเกินไป

Script ไม่ทำงาน


Third-Party Script ถูกบล็อก

เช่น

  • Analytics

  • Chat Widget


Application เก่าใช้งานไม่ได้

ต้องปรับ CSP ให้เหมาะสม


Header ซ้ำ

กำหนดทั้ง IIS และ Application


📋 XSS Prevention Checklist

✅ Content-Security-Policy


✅ X-Content-Type-Options


✅ Referrer-Policy


✅ HTTPS


✅ HttpOnly Cookie


✅ Secure Cookie


✅ SameSite Cookie


✅ Input Validation


✅ Output Encoding


🛡️ Best Practices

① ใช้ CSP ทุกเว็บไซต์


② Validate Input ทุกจุด


③ Escape Output ทุกครั้ง


④ เปิด HttpOnly Cookie


⑤ ใช้ HTTPS เท่านั้น


⑥ ตรวจสอบ OWASP Top 10 เป็นประจำ

ทีมงาน comsiam มักรวมการป้องกัน XSS เข้าไปในมาตรฐาน Web Application Security ตั้งแต่ขั้นตอนพัฒนาเว็บไซต์ และเสริมด้วย Security Header บน IIS Windows Server 2022 เพื่อสร้างการป้องกันหลายชั้นสำหรับระบบ Production


🎯 สรุป

XSS เป็นหนึ่งในช่องโหว่ที่พบได้บ่อยที่สุดในเว็บไซต์และระบบ Web Application โดยสามารถนำไปสู่การขโมย Session, Cookie และข้อมูลสำคัญของผู้ใช้งานได้

บน IIS Windows Server 2022 ควรใช้ Security Header เช่น Content-Security-Policy, X-Content-Type-Options และการตั้งค่า Cookie Security ร่วมกับการเขียนโปรแกรมที่ถูกต้อง เช่น Input Validation และ Output Encoding เพื่อสร้างระบบป้องกันแบบหลายชั้นและลดความเสี่ยงจากการโจมตี XSS ได้อย่างมีประสิทธิภาพ

Popular posts from this blog

Windows Server 2022 ยังน่าใช้ในปีนี้หรือไม่? คำตอบสำหรับคนกำลังวางระบบใหม่

สเปกเครื่องสำหรับติดตั้ง Windows Server 2022 เลือกอย่างไรให้คุ้มและใช้งานได้ยาว

Windows Server 2022 คืออะไร? คู่มือสำหรับมือใหม่