首頁 > 後端開發 > PHP問題 > php如何預防sql注入

php如何預防sql注入

(*-*)浩
發布: 2023-02-24 12:28:01
原創
4979 人瀏覽過

在查詢資料庫時需要防止sql注入

php如何預防sql注入

#實作的方法:

PHP自帶了方法可以將sql語句轉義,在資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(\)與NUL(NULL 字元)。(建議學習:PHP程式設計從入門到精通

string addslashes ( string $str )//该函数返回一个字符串
登入後複製

範例

<?php
$str = "Is your name O&#39;reilly?";

// 输出: Is your name O\&#39;reilly?
echo addslashes($str);
?>
登入後複製

ThinkPHP自動給提供了安全防護,對於字串類型的數據,ThinkPHP都​​會進行escape_string處理(real_escape_string,mysql_escape_string)

要有效的防止注入問題,官方建議:

查詢條件盡量使用數組方式,這是更安全的方式;

如果不得已必須使用字串查詢條件,使用預處理機制;

使用自動驗證和自動完成機制進行針對應用的自訂過濾;

如果環境允許,盡量使用PDO方式,並使用參數綁定。 

查詢條件預處理

這種方式類似於在查詢語句中放入一個佔位符,然後透過數組的形式傳入參數

例如:

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",array($id,$username,$xx))->select();

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",$id,$username,$xx)->select();
登入後複製

以上是php如何預防sql注入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板