首頁 > 後端開發 > php教程 > 使用tb框架開發還用防止sql注入嗎?怎麼防止SQL注入?求大神解答

使用tb框架開發還用防止sql注入嗎?怎麼防止SQL注入?求大神解答

WBOY
發布: 2016-08-04 09:20:23
原創
1247 人瀏覽過

使用tb框架開發還用防止sql注入嗎?怎麼防止SQL注入?求大神解答

回覆內容:

使用tb框架開發還用防止sql注入嗎?怎麼防止SQL注入?求大神解答

一個簡單的:
用PDO操作資料庫,要執行的sql語句中用:佔位符或?佔位符代替直接拼接字串,然後用bindParam來綁定參數並且規定參數的類型。
一個簡單的例子

<code>$pdo = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);//先新建一个PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//开启PDO的报错
$sql = 'SELECT * FROM article WHERE id > ? ;';//使用?占位符
try{
    $stmt = $pdo->prepare(sql);//返回的statment的值赋给$stmt
    $stmt -> bindParam(要绑定的占位符的位置, 要绑定的变量 [, 数据类型]);//bindParam()是$stmt的方法而不是$pdo的方法
    $stmt -> execute();//执行sql语句
} catch (PDOException $e) {
        echo 'Execute SQL failed: ' . $e->getMessage();
        exit();
    }</code>
登入後複製

使用mysqli或pdo的參數化查詢

不管你是框架還是什麼PDO和注入沒有半毛錢的關係,有很多人都錯誤的理解PDO可以防止注入,想的試透過佔符和預處理來防止,這些其實都不能起到100%的效果,自己寫全域過濾,過濾掉sql關鍵字才是比較安全的做法

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