การอนุญาตที่มีข้อบกพร่อง
BOLA และข้อบกพร่องด้านการเข้าถึง
การอนุญาตที่มีข้อบกพร่อง เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
การยืนยันตัวตนกับการอนุญาตสิทธิ์
การยืนยันตัวตนพิสูจน์ว่าคุณเป็นใคร ส่วนการอนุญาตสิทธิ์ตัดสินว่าคุณได้รับอนุญาตให้ทำอะไรได้บ้าง
การอนุญาตสิทธิ์ที่ผิดพลาดหมายถึงระบบอนุญาตให้ผู้ใช้ทำหรือดูสิ่งที่ไม่ควรทำหรือดู
BOLA คืออะไร
BOLAย่อมาจากการอนุญาตสิทธิ์ระดับออบเจ็กต์ที่ผิดพลาด
นี่คือความเสี่ยงสูงสุดของเอพีไอ: เอพีไอตรวจสอบว่าคุณเข้าสู่ระบบแล้ว แต่ไม่ได้ตรวจสอบว่าออบเจ็กต์เฉพาะที่คุณขอนั้นเป็นของคุณจริงหรือไม่
ตัวอย่าง BOLA
ลองจินตนาการว่าบัญชีของคุณเป็นผู้ใช้หมายเลข 100
GET /api/users/100/ordersหากคุณเปลี่ยน ID แล้วเซิร์ฟเวอร์ยังคงตอบกลับ แสดงว่าคุณเพิ่งอ่านคำสั่งซื้อของผู้อื่น นั่นคือ BOLA
เหตุใดจึงเกิด BOLA
นักพัฒนามักเชื่อถือ ID ที่อยู่ในคำขอ
พวกเขาลืมตรวจสอบว่าผู้ใช้ที่เข้าสู่ระบบเป็นเจ้าของออบเจ็กต์นั้นจริงหรือไม่ วิธีแก้คือการตรวจสอบความเป็นเจ้าของในทุกคำขอ
การอนุญาตสิทธิ์ระดับฟังก์ชัน
ข้อบกพร่องอีกประเภทหนึ่งคือBFLA: การอนุญาตสิทธิ์ระดับฟังก์ชันที่ผิดพลาด
ผู้ใช้ทั่วไปเรียกใช้การดำเนินการที่สงวนไว้สำหรับผู้ดูแลระบบได้สำเร็จ เพราะจุดปลายทางไม่เคยตรวจสอบบทบาทของผู้ใช้
ตัวอย่าง BFLA
ลองพิจารณาเส้นทางของผู้ดูแลระบบ:
DELETE /api/admin/users/55หากผู้ใช้ทั่วไปเรียกใช้ได้สำเร็จ เอพีไอก็ไม่ได้บังคับใช้การเข้าถึงตามบทบาท
การกำหนดค่าจำนวนมาก
เอพีไอบางรายการจับคู่ช่องข้อมูลในคำขอเข้ากับระเบียนโดยไม่ตรวจสอบอย่างรอบคอบ
ผู้ใช้อาจเพิ่มช่องข้อมูลอย่าง role=admin ลงในการอัปเดตโปรไฟล์ แล้วแอบยกระดับสิทธิ์ของตนเอง
ตรวจสอบที่เซิร์ฟเวอร์
อย่าพึ่งพาไคลเอนต์ในการซ่อนปุ่มหรือช่องข้อมูล
เซิร์ฟเวอร์ต้องบังคับใช้การตัดสินใจเกี่ยวกับการอนุญาตสิทธิ์ทุกครั้ง เพราะผู้โจมตีส่งคำขอโดยตรงและข้ามส่วนติดต่อผู้ใช้ของคุณไปทั้งหมด
ใช้ ID ที่คาดเดาไม่ได้
ID แบบเรียงลำดับทำให้ใช้ประโยชน์จาก BOLA ได้ง่าย
การใช้ตัวระบุแบบสุ่ม เช่น UUID ไม่ได้ทดแทนการตรวจสอบการอนุญาตสิทธิ์ แต่ช่วยตัดการโจมตีแบบเดาตัวเลขถัดไปอย่างง่ายออกไป
ปฏิเสธเป็นค่าเริ่มต้น
เอพีไอที่ปลอดภัยจะปฏิเสธเป็นค่าเริ่มต้น
จะอนุญาตให้เข้าถึงได้ก็ต่อเมื่อมีกฎที่ระบุไว้อย่างชัดเจนมอบสิทธิ์ให้ วิธีนี้ทำให้การตรวจสอบที่ถูกลืมส่งผลเป็นการปฏิเสธการเข้าถึง แทนที่จะเปิดเผยข้อมูล
ทดสอบการอนุญาตสิทธิ์
ข้อบกพร่องด้านการอนุญาตสิทธิ์ซ่อนอยู่ได้ง่าย จึงควรทดสอบโดยตั้งใจ
ลองเข้าถึงข้อมูลของผู้ใช้อื่นด้วยโทเค็นของคุณเอง หากทำได้ แสดงว่าคุณพบข้อบกพร่องร้ายแรงที่ต้องแก้ไข
ตรวจสอบความเข้าใจ
เอพีไอยืนยันว่าคุณเข้าสู่ระบบแล้ว แต่ส่งคืนระเบียนของผู้ใช้อื่นเมื่อคุณเปลี่ยน ID ข้อบกพร่องนี้เรียกว่าอะไร
ทบทวน
การอนุญาตสิทธิ์ที่ผิดพลาดทำให้ผู้ใช้เข้าถึงสิ่งที่ไม่ควรเข้าถึงได้ โปรดระวังBOLA BFLA และการกำหนดค่าจำนวนมาก
บังคับใช้การตรวจสอบความเป็นเจ้าของและบทบาทที่เซิร์ฟเวอร์ ปฏิเสธเป็นค่าเริ่มต้น และทดสอบการอนุญาตสิทธิ์อย่างตั้งใจ
คำถามที่พบบ่อย
บทเรียน “การอนุญาตที่มีข้อบกพร่อง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การอนุญาตที่มีข้อบกพร่อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การอนุญาตที่มีข้อบกพร่อง”
BOLA และข้อบกพร่องด้านการเข้าถึง คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การอนุญาตที่มีข้อบกพร่อง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นผิวการโจมตี API
- การอนุญาตที่มีข้อบกพร่อง
- การจำกัดอัตราและการใช้งานในทางที่ผิด
- การรักษาความปลอดภัยคีย์ API