ในยุคที่การโจมตีทางไซเบอร์เป็นเรื่องที่นักพัฒนาเว็บต้องเผชิญอยู่เสมอ ความปลอดภัยของเว็บไซต์จึงกลายเป็นสิ่งสำคัญที่ไม่สามารถมองข้ามได้ หนึ่งในเทคนิคที่มีประสิทธิภาพในการปกป้องเว็บไซต์ของคุณจากการโจมตีที่มาจากไฟล์ภายนอกคือ Subresource Integrity (SRI) ซึ่งช่วยให้มั่นใจได้ว่าไฟล์ที่คุณโหลดจาก CDN หรือแหล่งภายนอกอื่นๆ นั้นยังคงเป็นไฟล์ที่ไม่ถูกแก้ไขหรือปลอมแปลง
Subresource Integrity (SRI) คืออะไร?
Subresource Integrity (SRI) เป็นเทคนิคที่ใช้ในการตรวจสอบความถูกต้องของไฟล์ที่โหลดจากแหล่งภายนอก เช่น CDN โดยการใช้แฮช (hash) ในการตรวจสอบว่าไฟล์ที่ได้รับมาตรงกับไฟล์ต้นฉบับหรือไม่ หากไฟล์ถูกแก้ไขหรือปลอมแปลงในระหว่างทาง แฮชของไฟล์นั้นจะไม่ตรงกับแฮชที่ถูกกำหนดไว้ในโค้ดของเรา และไฟล์จะไม่ถูกโหลด ทำให้การโจมตีที่มุ่งเป้าหมายไปที่การแทรกโค้ดที่เป็นอันตรายถูกป้องกันได้อย่างมีประสิทธิภาพ
การทำงานของ Subresource Integrity (SRI)
การทำงานของ SRI นั้นเริ่มต้นจากการสร้างแฮชจากไฟล์ต้นฉบับ เมื่อคุณรวมไฟล์ภายนอกเข้ากับเว็บไซต์ของคุณ เช่น ไฟล์ JavaScript หรือ CSS จาก CDN เราจะเพิ่มค่าแฮชลงในแท็ก <script>
หรือ <link>
ของไฟล์นั้นๆ จากนั้น เบราว์เซอร์จะตรวจสอบว่าแฮชของไฟล์ที่ได้รับมาตรงกับแฮชที่ระบุไว้ในโค้ดหรือไม่ หากไม่ตรงกัน ไฟล์จะไม่ถูกโหลด
ตัวอย่างการใช้ SRI ในการโหลดไฟล์ JavaScript จาก CDN:
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script>
Code language: HTML, XML (xml)
ประโยชน์ของการใช้ Subresource Integrity (SRI)
ป้องกันการปลอมแปลงไฟล์
SRI ช่วยให้มั่นใจได้ว่าไฟล์ที่เราโหลดจากแหล่งภายนอกยังคงไม่ถูกแก้ไข หรือแทรกโค้ดที่เป็นอันตราย ทำให้ผู้ใช้เว็บไซต์ของเราปลอดภัยจากการโจมตีที่มุ่งเป้าหมายไปยังไฟล์เหล่านี้
เพิ่มความน่าเชื่อถือของเว็บไซต์
การใช้ SRI แสดงให้เห็นว่าคุณใส่ใจเรื่องความปลอดภัยของเว็บไซต์และผู้ใช้ของคุณ ทำให้เว็บไซต์ของคุณดูน่าเชื่อถือมากขึ้น
ปกป้องจากการโจมตีแบบ Man-in-the-Middle
SRI ป้องกันการโจมตีที่ผู้โจมตีสามารถแก้ไขไฟล์ระหว่างทางก่อนที่จะมาถึงผู้ใช้ โดยการตรวจสอบแฮชของไฟล์เมื่อไฟล์ถูกโหลดมาจากแหล่งภายนอก
วิธีการใช้งาน Subresource Integrity (SRI)
การสร้างแฮชสำหรับไฟล์ SRI
เราสามารถสร้าง SRI Hash ได้ง่ายๆ เพียงเข้าไปที่เว็บไซต์ https://www.srihash.org และนำ Url ของ Libraries ที่ต้องการไปใส่ จากนั้นก็นำโค้ดไปใช้งานได้เลย แต่เอาจริงๆ CDN ที่ให้บริการ Hosted Libraries ส่วนใหญ่ก็จะมาพร้อมกับ SRI อยู่แล้ว
การใช้งาน SRI ร่วมกับ crossorigin
ในการใช้ SRI เราควรใช้ crossorigin="anonymous"
attribute ร่วมด้วย เพื่อให้แน่ใจว่าไฟล์ที่ถูกโหลดมาจะถูกตรวจสอบความสมบูรณ์ได้อย่างถูกต้อง
ข้อจำกัด และข้อควรระวังในการใช้ Subresource Integrity (SRI)
การจัดการกับการอัปเดตเวอร์ชันไฟล์
หากไฟล์ที่เราใช้งานมีการอัปเดตเวอร์ชันใหม่ แฮชของไฟล์นั้นจะเปลี่ยนไป ทำให้ SRI ไม่สามารถยืนยันความถูกต้องของไฟล์ได้ เราจึงต้องสร้างแฮชใหม่ และอัปเดตในโค้ดของเราทุกครั้งที่มีการเปลี่ยนแปลงเวอร์ชันไฟล์
ข้อจำกัดของเบราว์เซอร์
แม้ว่า SRI จะรองรับในเบราว์เซอร์หลักๆ แต่บางเบราว์เซอร์รุ่นเก่าอาจไม่รองรับ เราควรตรวจสอบความเข้ากันได้ก่อนใช้งาน
การใช้แฮชที่ถูกต้อง
ความถูกต้องของแฮชเป็นสิ่งสำคัญ หากเราใช้แฮชที่ไม่ถูกต้อง ไฟล์จะไม่ถูกโหลด เราจึงต้องมั่นใจว่าแฮชที่เราใช้ถูกต้อง และตรงกับไฟล์ต้นฉบับ
สรุป
Subresource Integrity (SRI) เป็นเทคนิคที่มีประสิทธิภาพในการปกป้องเว็บไซต์ของเราจากการปลอมแปลงไฟล์ที่โหลดจากแหล่งภายนอก การนำ SRI มาใช้ในเว็บไซต์ของเราจะช่วยเพิ่มความปลอดภัย และความน่าเชื่อถือให้กับเว็บไซต์ของเราอย่างมาก
แหล่งอ้างอิง: