Security Headers

HTTP Security Headers ที่เว็บไซต์ควรมี

A
admin
3 กรกฎาคม 2568 0 ครั้ง
แชร์:

HTTP Security Headers ที่เว็บไซต์ควรมี

Security headers คือ HTTP response headers ที่สั่งนโยบายฝั่งเบราว์เซอร์ OWASP Secure Headers Project รวบรวมชุดที่ควรตั้งเป็นค่าเริ่มต้น

Headers สำคัญ

Strict-Transport-Security (HSTS)

บังคับ HTTPS ตาม RFC 6797

code
Strict-Transport-Security: max-age=31536000; includeSubDomains

Content-Security-Policy (CSP)

จำกัดแหล่งสคริปต์ สไตล์ และเฟรม ลดผลกระทบ XSS ดู MDN CSP

code
Content-Security-Policy: default-src 'self'; frame-ancestors 'self'

X-Content-Type-Options

code
X-Content-Type-Options: nosniff

ป้องกัน MIME sniffing ตามที่อธิบายใน MDN X-Content-Type-Options

ป้องกันการฝังเฟรม

X-Frame-Options ถูกกำหนดใน RFC 7034 แต่ปัจจุบันแนะนำ Content-Security-Policy: frame-ancestors ซึ่งยืดหยุ่นกว่า

Referrer-Policy และ Permissions-Policy

code
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()

ตัวอย่าง Apache

apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Content-Security-Policy "default-src 'self'; frame-ancestors 'self'"

ตัวอย่าง Nginx

nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; frame-ancestors 'self'" always;

อย่าส่ง X-XSS-Protection: 1; mode=block อีกแล้ว OWASP แนะนำให้ปิดหรือไม่ส่ง เพราะตัวกรอง XSS ในเบราว์เซอร์เก่ามีผลข้างเคียง

สรุป

เริ่มจาก HSTS, nosniff, Referrer-Policy และ frame-ancestors แล้วค่อยออกแบบ CSP ให้เข้ากับแอป ตรวจด้วยสแกนเนอร์ headers เป็นระยะ

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

หมวดหมู่: Security Headers