คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2


ระบบรักษาความปลอดภัย

หน้านี้ได้อธิบาย "วิธีปฎิบัติที่ดีที่สุด" บางส่วนเกี่ยวกับความปลอดภัยของเว็บและรายละเอียดความปลอดภัยภายใน CodeIgniter

ความปลอดภัยของ URI

CodeIgniter จำกัดตัวอักษรบางอย่างซึ่งตัวอักษรนั้นถูกยอมรับใน URI เพื่อช่วยในการลดข้อมูลที่มุ่งร้าย สามารถผ่านไปยังแอพพลิเคชั่นของคุณได้ URIs สามารถใช้ได้ดังต่อไปนี้:

ข้อมูล GET, POST, และ COOKIE

ข้อมูลแบบ GET ไม่ถูกอนุญาตให้ใช้โดย CodeIgniter ตั้งแต่ระบบมีการทำ URI เป็นส่วนๆแทนที่จะใช้ URL query strings ตามปกติ (ยกเว้นถ้าคุณต้องใช้ก็สามารถเปิดการใช้งานได้ในไฟล์ config) โดยรวมอาเรย์ GET จะยังไม่ถูกตั้งค่าจากคลาส Input เมื่อระบบอยู่ในช่วงพึงถูกเปิดการใช้งาน

Register_globals

เมื่ออยู่ในช่วงที่ระบบถูกเปิดใช้งาน ค่าตัวแปรทั่วไปจะยังไม่ตั้งค่า, ยกเว้นว่าพบว่ามีในอาเรย์ $_POST และ $_COOKIE การไม่ตั้งค่าเป็นประจำมีผลเหมือนการตั้งค่า register_globals = off.

magic_quotes_runtime

คำสั่ง magic_quotes_runtime ถูกปิดเมื่อระบบอยู่ในช่วงเพิ่งเริ่มเปิดใช้งานดังนั้นคุณไม่ต้องนำเครื่องหมายสแลชออกเมื่อคุณต้องการรับข้อมูลจากฐานข้อมูล

วิธีปฎิบัติที่ดีที่สุด

ก่อนจะรับค่าใดๆมายังแอพพลิเคชั่นของคุณไม่ว่าจะเป็นข้อมูลแบบ POST จากยื่นแบบฟอร์ม (form submission) , ข้อมูล COOKIE , ข้อมูล URI , ข้อมูล XML-RPC หรือแม้กระทั้งข้อมูลจากอาเรย์ SERVER, คุณเน้นให้คุณปฎิบัติตาม 3 ขั้นตอนนี้

  1. กรองข้อมูลเหมือนกับมีจุดบกพร่อง
  2. ตรวจสอบข้อมูลให้ถูกต้องเพื่อให้แน่ใจว่ามันสอดคล้างกับรูปแบบที่ถูกต้อง , ความยาว , ขนาด , ฯลฯ (บางครั้งขั้นตอนนี้สามารถทำแทนขั้นตอนแรกได้)
  3. พาข้อมูลหลบภัย(escape the data) ก่อนที่จะส่งมอบไปยังฐานข้อมูล

CodeIgniter ได้จัดหาฟังก์ชันเพื่อช่วยเหลือในงานนี้แล้วดังต่อไปนี้