แซนด์บ็อกซ์ของเบราว์เซอร์

Mariko Kosaka

ในการป้องกันการโจมตี นักพัฒนาซอฟต์แวร์จำเป็นต้องลดช่องโหว่และเพิ่มฟีเจอร์ด้านความปลอดภัยลงในแอปพลิเคชัน โชคดีที่เบราว์เซอร์มี คุณลักษณะด้านความปลอดภัยหลายอย่าง บางฟีเจอร์พร้อมให้นักพัฒนาซอฟต์แวร์เลือกใช้ และแอปบางรายการเปิดใช้โดยค่าเริ่มต้นเพื่อปกป้องผู้ใช้

เบราว์เซอร์เป็นแซนด์บ็อกซ์
ภาพ: เบราว์เซอร์ในแบบแซนด์บ็อกซ์

เว็บเบราว์เซอร์สมัยใหม่สร้างขึ้นจากแนวคิดของ "แซนด์บ็อกซ์" แซนด์บ็อกซ์เป็นกลไกความปลอดภัย ที่ใช้เพื่อเรียกใช้แอปพลิเคชันในสภาพแวดล้อมที่ถูกจำกัด โค้ดของแอปพลิเคชันมีอิสระในการใช้งานในสภาพแวดล้อมที่ถูกจำกัด เหมือนกับแซนด์บ็อกซ์จริงในสนามเด็กเล่นที่เด็กๆ สามารถสร้างทุกสิ่งที่ต้องการภายในขอบเขตได้โดยไม่สร้างความยุ่งเหยิงในที่อื่นๆ เช่น JavaScript สามารถเพิ่มและแก้ไของค์ประกอบในหน้าได้ แต่อาจถูกจำกัดไม่ให้เข้าถึงไฟล์ JSON ภายนอก เนื่องจากฟีเจอร์แซนด์บ็อกซ์ที่เรียกว่าต้นทางเดียวกัน

ทำไมต้องใช้แซนด์บ็อกซ์

ในทุกๆ วัน ผู้ใช้เว็บจะดาวน์โหลดโค้ดที่กำหนดเองและรันโค้ดดังกล่าวบนคอมพิวเตอร์หรือโทรศัพท์หลายครั้ง หากมีคนบอกว่า "เฮ้! ดาวน์โหลดและเรียกใช้แอปพลิเคชันนี้" คุณอาจต้องหยุดคิดสักนิดว่าแอปพลิเคชันนั้นมาจากแหล่งที่มาที่เชื่อถือได้หรือไม่ ลองอ่านข้อมูลเกี่ยวกับผู้ให้บริการแอปพลิเคชัน หรือตรวจสอบรีวิวอย่างละเอียด แล้วเมื่อมีคนส่ง URL ให้คุณโดยบอกว่า "ดูบล็อกโพสต์นี้" ล่ะ คุณอาจจะคลิกเว็บไซต์ได้โดยไม่ต้องถามคำถาม เช่น "เว็บไซต์นี้จะดาวน์โหลด JavaScript ประเภทใด"

แซนด์บ็อกซ์ของเบราว์เซอร์เป็นฟีเจอร์สำคัญที่ทำให้การท่องเว็บเป็นไปอย่างราบรื่นเนื่องจากเรียกใช้โค้ดที่กำหนดเองได้ปลอดภัยยิ่งขึ้น

ออกแบบเพื่อความปลอดภัย

หากเบราว์เซอร์กำลังทำแซนด์บ็อกซ์กับเว็บแอปพลิเคชันต่างๆ เราควรใส่ใจเรื่องความปลอดภัยด้วยไหม แน่นอน

ข้อแรก ฟีเจอร์แซนด์บ็อกซ์ไม่ใช่เกราะป้องกันที่สมบูรณ์แบบ แม้ว่าวิศวกรเบราว์เซอร์จะทำงานอย่างหนัก แต่เบราว์เซอร์อาจมีช่องโหว่และผู้โจมตีจะพยายามหลบเลี่ยงแซนด์บ็อกซ์อยู่เสมอ (เช่น เมื่อใช้ Spectre Attack)

บางครั้ง Sandbox อาจเป็นอุปสรรคในการสร้างประสบการณ์เว็บที่ยอดเยี่ยม เช่น เบราว์เซอร์อาจบล็อกคำขอดึงข้อมูลไปยังรูปภาพที่โฮสต์ในโดเมนอื่น คุณแชร์ทรัพยากรในโดเมนต่างๆ ได้โดยเปิดใช้ "การแชร์ทรัพยากรแบบข้ามต้นทาง" (เรียกสั้นๆ ว่า CORS) แต่หากไม่ได้ดำเนินการอย่างรอบคอบ ก็ให้คนอื่นๆ ในเว็บได้ดูแทนโดยจะต้องเลิกทำแซนด์บ็อกซ์

สรุป

เราจะได้รับประสบการณ์การใช้งานเว็บที่ปลอดภัยได้ก็ต่อเมื่อมีการรวมการรักษาความปลอดภัยไว้ในการออกแบบแอปพลิเคชัน และการออกแบบที่มีประสิทธิภาพควรเริ่มจากการทำความเข้าใจฟีเจอร์ที่มีอยู่ คู่มือ 2 ข้อถัดไปจะเจาะลึกเกี่ยวกับ CORS และนโยบายต้นทางเดียวกัน