ม.ปลาย · 30–40 นาที

เว็บอาจเปิดเผยข้อมูล ถ้าเซิร์ฟเวอร์ไม่ตรวจสิทธิ์

ในแล็บนี้ เราจะเรียนรู้เรื่อง Broken Access Control ซึ่งเป็นช่องโหว่ที่เกิดเมื่อเว็บไม่ตรวจว่าใครมีสิทธิ์ดูข้อมูล เราจะลองหาช่องโหว่ในเว็บจำลอง แล้วแก้โค้ดหนึ่งบรรทัดให้เซิร์ฟเวอร์ตรวจสิทธิ์อย่างถูกต้อง

วันนี้จะได้เรียนรู้อะไร

Access control คืออะไร

Access control หรือการควบคุมสิทธิ์ คือกฎที่เซิร์ฟเวอร์ใช้ตรวจว่า คนที่ล็อกอินอยู่มีสิทธิ์ทำสิ่งนี้กับข้อมูลนี้หรือไม่ เช่น น้องเอดูเกรดของตัวเองได้ แต่ไม่ควรดูเกรดของน้องบี

ถ้าเซิร์ฟเวอร์เชื่อเลข id ใน URL โดยไม่ตรวจเจ้าของข้อมูล ช่องโหว่นี้เรียกว่า IDOR และเป็น Broken Access Control รูปแบบหนึ่ง

  1. ลองเปลี่ยนเลขท้าย URL บนเว็บสาธิต
  2. เปิดระบบนักเรียนบนเครื่องตัวเองด้วย npm start
  3. ทดลองอีกครั้ง แล้วแก้ไฟล์ access-control.js
  4. รีสตาร์ทเซิร์ฟเวอร์ แล้วตรวจว่าเว็บแสดงหน้า 403