HSTS อธิบาย: max-age, preload และอะไรจะพัง
อัปเดต 2026-11-03 · 6 นาทีในการอ่าน
HSTS เป็นเฮดเดอร์ความปลอดภัยเดียวที่ทำให้เว็บเข้าไม่ถึงได้ รวมถึงเจ้าของเอง และยังเป็นข้อกำหนดของ A+ ช่องว่างระหว่างสองข้อเท็จจริงนี้ขึ้นอยู่กับวินัยในการทยอยเปิดทั้งหมด
เฮดเดอร์นี้ทำอะไรจริง ๆ
Strict-Transport-Security บอกเบราว์เซอร์ว่าโฮสต์นี้ต้องติดต่อผ่าน HTTPS เท่านั้นใน N วินาทีข้างหน้า เมื่อได้รับแล้ว เบราว์เซอร์จะเขียนลิงก์ http:// ภายในใหม่ บล็อกการคลิกข้ามข้อผิดพลาดใบรับรอง และปฏิเสธ HTTP ล้วนทั้งหมด ก่อนที่คำขอใดจะออกจากเครื่อง
นี่คือเหตุผลที่มันกันการโจมตีแบบดาวน์เกรดได้ ขณะที่การเปลี่ยนเส้นทางทำไม่ได้ เพราะการเปลี่ยนเส้นทางยังส่งคำขอแรกแบบข้อความล้วน และนั่นคือคำขอที่ผู้โจมตีบนเครือข่ายต้องการดักพอดี
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
max-age คือการนับถอยหลังที่ยกเลิกไม่ได้
max-age ถูกเก็บที่ไคลเอนต์ ถ้าคุณส่งหนึ่งปีแล้วภายหลังลบเฮดเดอร์ เบราว์เซอร์ที่เคยเห็นแล้วจะยังบังคับ HTTPS ต่อไปได้ถึงหนึ่งปี ไม่มีสวิตช์ฝั่งเซิร์ฟเวอร์ให้ปิด
CertH ถือ 180 วัน (15552000 วินาที) เป็นเกณฑ์ของ A+ หนึ่งปีคือค่าที่ใช้จริงทั่วไป ต่ำกว่า 180 วันยังนับว่าเปิด HSTS ในสรุป แต่ไม่ปลดล็อก A+
includeSubDomains กับ preload เป็นการตัดสินใจแยกกัน
includeSubDomains ขยายกฎไปทุกซับโดเมน ถ้ามีซับโดเมนที่พูดได้แค่ HTTP แม้เพียงตัวเดียว เช่นเครื่องมือภายใน แผงผู้ดูแลเก่า โฮสต์ staging มันจะเข้าไม่ถึงสำหรับใครก็ตามที่เคยเข้าดอมเมนหลัก ตรวจ DNS ก่อน
preload ไปไกลกว่านั้น โดเมนถูกฝังในรายการที่แจกมากับเบราว์เซอร์ กฎจึงมีผลตั้งแต่การเข้าชมครั้งแรก ก่อนจะเห็นเฮดเดอร์ใด ๆ การถอนใช้เวลาหลายเดือนและต้องส่งคำขอไปยังรายการถอน อย่าเพิ่ม preload จนกว่าเฮดเดอร์จะนิ่งอย่างน้อยหลายเดือน
- •ส่งเฮดเดอร์ในทุกคำตอบ HTTPS รวมถึงหน้าแสดงข้อผิดพลาด 404 ที่ไม่มีเฮดเดอร์ไม่ได้สอนอะไรเบราว์เซอร์เลย
- •ห้ามส่ง HSTS ผ่าน HTTP ล้วน เบราว์เซอร์จะไม่สนใจตามสเปก ดังนั้นลูปเปลี่ยนเส้นทางที่ตั้งค่าผิดจึงแก้ด้วยวิธีนี้ไม่ได้
- •ตรวจซับโดเมนว่ามีบริการแบบ HTTP ล้วนก่อนเพิ่ม includeSubDomains
- •เพิ่ม preload เป็นลำดับสุดท้าย และหลัง max-age อยู่ที่หนึ่งปีมาระยะหนึ่งแล้วเท่านั้น
การทยอยเปิดที่ไม่ทำให้อะไรพัง
เริ่มด้วย max-age สั้นเพื่อให้ความผิดพลาดหมดอายุเร็ว คือ max-age=300 คงไว้หนึ่งสัปดาห์และเฝ้าดูซับโดเมนที่พังกับรายงานเนื้อหาผสม จากนั้นเป็นหนึ่งวัน หนึ่งเดือน แล้วหนึ่งปี แต่ละขั้นย้อนกลับได้ภายในหน้าต่างก่อนหน้า นั่นคือเหตุผลทั้งหมดของการเริ่มสั้น
ถ้ามีอะไรพัง วิธีแก้คือให้บริการ HTTPS อย่างถูกต้องบนโฮสต์ที่พัง ไม่ใช่ลบเฮดเดอร์ ซึ่งไม่ได้ช่วยใครที่ได้รับไปแล้ว
FAQ
การไม่มี HSTS ทำให้คะแนนลดไหม?
ไม่หักจากคะแนนฐาน แต่บล็อก A+ เกรดสูงสุดต้องมี HSTS ที่ max-age อย่างน้อย 180 วันหรือ preload เว็บได้ 100 คะแนนและยังเป็น A ได้ถ้าไม่มี
ใช้ HSTS โดยไม่ได้เป็นเจ้าของทุกซับโดเมนได้ไหม?
ได้ ตราบใดที่ละเว้น includeSubDomains เฮดเดอร์จะใช้กับโฮสต์ที่ส่งมันเท่านั้น