|
|
|
PHP, MySQL ขอวิธีป้องกัน Sql injection รบกวนเข้ามาช่วยตอบหน่อยครับ |
|
|
|
|
|
|
|
เห็นเค้าแนะนำให้ใช้ตัวนี้ครับ mysql_real_escape_string()
|
|
|
|
|
Date :
2012-07-11 17:54:27 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูวิธีครับ
Code (PHP)
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
|
|
|
|
|
Date :
2012-07-11 17:55:00 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือดัดแปลงทุกอันที่เป็น SQL เดิมๆ ให้เป็น SQL แบบใหม่นี้ใช่ไหมครับ
เช่นในเว็บไซต์มีโค๊ชที่เกี่ยวกับ sql 100 ที่ ก็แก้ไขมันทั้ง 100 ที่ใช้ไหมครับ
|
|
|
|
|
Date :
2012-07-11 18:40:02 |
By :
i5z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับใช่ครับ mysql_real_escape_string()
|
|
|
|
|
Date :
2012-07-11 18:46:30 |
By :
kongoon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตามคุณวินครับ
แต่ถ้าจะให้แนะนำ ขอแนะนำให้เปลี่ยนวิธีใช้ไปเลย
เช่น ไปหาพวก class ที่เกี่ยวกับ db มาใช้ หรือเปลี่ยนไปใช้ mysqli หรือ pdo
ซึ่ง mysql ธรรมดานั้น ทางเว็บ php.net ได้ประกาศแล้วว่าไม่แนะนำให้ใช้ หรือก็คือเขาจะเลิกใช้ในเวอร์ชั่นใหม่ๆแล้วนั่นเอง เลยให้ใช้ mysqli, pdo
ถ้าหากย้ายไปใช้พวก class เกี่ยวกับ db เขาก็จะคอยอัพเดทให้เรา คอยรองรับวิธีใหม่ๆที่ server จะมีให้ ก็สบายไป
class db ก็อย่างเช่น
http://adodb.sourceforge.net/ PHP ADOdb
http://www.phpactiverecord.org/ PHP ActiveRecord
|
|
|
|
|
Date :
2012-07-11 18:53:27 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|