[英]Preventing SQL injection in PHP with MDB2
我試圖弄清楚如何防止sqlinjection,我寫了這個基本的function:function
antiInjectie($inputfromform){
$temp = str_replace("'", "`",$inputfromform);
$temp = str_replace("--", "~~",$temp);
return htmlentitites($temp);
}
但是有人告訴我也要考慮十六進制值,但是我該怎么做呢?
更新我堅持使用 MDB2 和 pgsql
Bobby-Tables有一個很好的指南來防止 SQL 注入。
簡而言之:不要自己玩弄輸入,使用允許綁定參數的數據庫 API 方法。
使用MDB2 ,您可以執行與 PHP 的原生PDO 抽象相同的操作,該抽象在相關問題中提出停止 SQL 注入 Z2FEC392304A5C23AC138DA22847F9BC7 的最佳方法。 您可以將准備好的語句與prepare
和execute
一起使用,也可以手動引用和插入值。
使用pg_query_params() ,最簡單的 function 來避免 SQL 注入,使用 PHP4866ZF16 和 Z399BD39ECAA987。
首先,不要自己寫任何轉義的function。 它們很可能被破壞,並且數據庫庫很可能包含正確的庫。 對於 mysql 您可以使用mysql_real_escape_string 。
一個更好的長期解決方案不是將完整的查詢創建為文本,而是使用准備好的查詢並在執行期間傳遞值。 對於 mysql,檢查 mysqli 擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.