2012-12-16 61 views
-5

可能重複:
How to prevent SQL injection?SQL注入固定在PHP

我想修復appRain CMS SQL注入: http://code.google.com/p/apprain-quickstart/downloads/list

如果有人可以幫助我,在哪個php文件中查看並給我正確的功能,那就太好了。

我試過使用mysql_real_escape_string,但我找不到正確的功能在哪裏使用它。

利用:http://www.securityfocus.com/archive/1/520911

OR:/資料/ -1聯盟的所有選擇1,2,3,()版本,5,6,7,8,9,10,11,12,13,14 ,15,16,17,18,19

感謝

回答

0

閱讀你已經正確給出的鏈接。

的解決問題的方法寫在鏈接

1. 使用事先準備好的聲明類來解決SQL注入漏洞&過濾SQL錯誤的請求。 設置錯誤(0)以防止通過例外或錯誤報告泄露信息。

2. 解析輸入字段並限制字符(如>> < \/etc以防止腳本包含。 也解析了易受攻擊的輸出部分是腳本代碼在模塊上下文之外執行。

作出準備好的語句

$oDB=new PDO('..your connection.. '); 
$hStmt=$oDB->prepare("select * from users where id=:id"); 
$hStmt->execute(array(':id',$userID)); 

注意$userID上面不與SQL字符串相結合,因此SQL注入將不會進行這項工作。

使用mysqli_real_escape_string

注意mysql_real_escape_string已經depreceated這樣反而我會提到如何使用mysqli_real_escape_string

$a= "'ABCD"; //will not work because of quotation 

$a= $mysqli->real_escape_string($a); 
    //Now this is the string with special chars escaped 

欲瞭解更多信息,請閱讀

PDO How can I prevent SQL injection in PHP?

逃離字符串http://php.net/manual/en/mysqli.real-escape-string.php

+0

這不是一個答案,你引用的資源是鏈接的問題。其餘的是評論材料。 – hakre

+0

夠公平的。我編輯它來描述如何去做。 :-)乾杯 – cjds

+0

在我眼中並不是非常必要,但是玩得開心。太多的愛可能是因爲這個問題很快就會被刪除。 – hakre