บทความ

กำลังแสดงโพสต์จาก ตุลาคม, 2019

วิธีป้องกัน SQL injection PHP กับ codeigniter

บ่อยครั้งคที่เราเขียนโปรแกรมโดยที่ไม่คำนึงถึงความปลอดภัย เปิดช่องโหว่ให้ผู้ไม่หวังดีสามารถใส่ SQL Injection เข้ามาได้ ยกตัวอย่างเช่น หน้าจอ login ถ้าเรา รับ parameter เป็น username กับ password แล้วนำไปใช้ใน SQL Query แบบง่ายๆ เช่น select * from muser where username='$user_name' and password='$passwrod' ดูแล้วก็ไม่น่าจะมีอะไรแต่ลองนึกภาพดูนะ ยกตัวอย่างจาก statement ข้างต้น สิ่งที่ได้คือคำสั่งนี้ select * from muser where username='admin' and password='admin1234' ถ้าหากผู้ไม่หวังดีส่งค่าของ $password เข้ามาแบบนี้ล่ะ    test' or '1'='1  ลองแทนค่าดูก็จะได้แบบนี้ select * from muser where username='admin' and password='test' or '1'='1' คำสั่ง or 1=1 เป็นจริงเสมอรับรองได้เลยว่าไม่ว่าจะใส่ username , password มั่วๆ เข้ามา ก็สามารถทะลุหน้าจอ login เราเข้าไปได้แน่นอน แบบนี้แหละเขาเรียกว่าปัญหา  SQL injection   แนวทางแก้แบบง่ายๆ เลยนะให้เปลี่ยนไปใช้คำสั่งนี้ครับ $dbResult = $this->db-&