ในการป้องกันการโจมตี นักพัฒนาซอฟต์แวร์จำเป็นต้องลดช่องโหว่และเพิ่มฟีเจอร์ด้านความปลอดภัยลงในแอปพลิเคชัน โชคดีที่เบราว์เซอร์มี คุณลักษณะด้านความปลอดภัยหลายอย่าง บางฟีเจอร์พร้อมให้นักพัฒนาซอฟต์แวร์เลือกใช้ และแอปบางรายการเปิดใช้โดยค่าเริ่มต้นเพื่อปกป้องผู้ใช้
แนวคิดของ "แซนด์บ็อกซ์"
เว็บเบราว์เซอร์สมัยใหม่สร้างขึ้นจากแนวคิดของ "แซนด์บ็อกซ์" แซนด์บ็อกซ์เป็นกลไกความปลอดภัย ที่ใช้เพื่อเรียกใช้แอปพลิเคชันในสภาพแวดล้อมที่ถูกจำกัด โค้ดของแอปพลิเคชันมีอิสระในการใช้งานในสภาพแวดล้อมที่ถูกจำกัด เหมือนกับแซนด์บ็อกซ์จริงในสนามเด็กเล่นที่เด็กๆ สามารถสร้างทุกสิ่งที่ต้องการภายในขอบเขตได้โดยไม่สร้างความยุ่งเหยิงในที่อื่นๆ เช่น JavaScript สามารถเพิ่มและแก้ไของค์ประกอบในหน้าได้ แต่อาจถูกจำกัดไม่ให้เข้าถึงไฟล์ JSON ภายนอก เนื่องจากฟีเจอร์แซนด์บ็อกซ์ที่เรียกว่าต้นทางเดียวกัน
ทำไมต้องใช้แซนด์บ็อกซ์
ในทุกๆ วัน ผู้ใช้เว็บจะดาวน์โหลดโค้ดที่กำหนดเองและรันโค้ดดังกล่าวบนคอมพิวเตอร์หรือโทรศัพท์หลายครั้ง หากมีคนบอกว่า "เฮ้! ดาวน์โหลดและเรียกใช้แอปพลิเคชันนี้" คุณอาจต้องหยุดคิดสักนิดว่าแอปพลิเคชันนั้นมาจากแหล่งที่มาที่เชื่อถือได้หรือไม่ ลองอ่านข้อมูลเกี่ยวกับผู้ให้บริการแอปพลิเคชัน หรือตรวจสอบรีวิวอย่างละเอียด แล้วเมื่อมีคนส่ง URL ให้คุณโดยบอกว่า "ดูบล็อกโพสต์นี้" ล่ะ คุณอาจจะคลิกเว็บไซต์ได้โดยไม่ต้องถามคำถาม เช่น "เว็บไซต์นี้จะดาวน์โหลด JavaScript ประเภทใด"
แซนด์บ็อกซ์ของเบราว์เซอร์เป็นฟีเจอร์สำคัญที่ทำให้การท่องเว็บเป็นไปอย่างราบรื่นเนื่องจากเรียกใช้โค้ดที่กำหนดเองได้ปลอดภัยยิ่งขึ้น
ออกแบบเพื่อความปลอดภัย
หากเบราว์เซอร์กำลังทำแซนด์บ็อกซ์กับเว็บแอปพลิเคชันต่างๆ เราควรใส่ใจเรื่องความปลอดภัยด้วยไหม แน่นอน
ข้อแรก ฟีเจอร์แซนด์บ็อกซ์ไม่ใช่เกราะป้องกันที่สมบูรณ์แบบ แม้ว่าวิศวกรเบราว์เซอร์จะทำงานอย่างหนัก แต่เบราว์เซอร์อาจมีช่องโหว่และผู้โจมตีจะพยายามหลบเลี่ยงแซนด์บ็อกซ์อยู่เสมอ (เช่น เมื่อใช้ Spectre Attack)
บางครั้ง Sandbox อาจเป็นอุปสรรคในการสร้างประสบการณ์เว็บที่ยอดเยี่ยม เช่น เบราว์เซอร์อาจบล็อกคำขอดึงข้อมูลไปยังรูปภาพที่โฮสต์ในโดเมนอื่น คุณแชร์ทรัพยากรในโดเมนต่างๆ ได้โดยเปิดใช้ "การแชร์ทรัพยากรแบบข้ามต้นทาง" (เรียกสั้นๆ ว่า CORS) แต่หากไม่ได้ดำเนินการอย่างรอบคอบ ก็ให้คนอื่นๆ ในเว็บได้ดูแทนโดยจะต้องเลิกทำแซนด์บ็อกซ์
สรุป
เราจะได้รับประสบการณ์การใช้งานเว็บที่ปลอดภัยได้ก็ต่อเมื่อมีการรวมการรักษาความปลอดภัยไว้ในการออกแบบแอปพลิเคชัน และการออกแบบที่มีประสิทธิภาพควรเริ่มจากการทำความเข้าใจฟีเจอร์ที่มีอยู่ คู่มือ 2 ข้อถัดไปจะเจาะลึกเกี่ยวกับ CORS และนโยบายต้นทางเดียวกัน