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