PHP代碼安全有必要了解下

攻擊者經過構造惡意SQL命令發送到數據庫,若是程序未對用戶輸入的 SQL命令執行判斷過濾,那麼生成的SQL語句可能會繞過安全性檢查,插入其餘用於修改後端數據庫的語句,並可能執行系統命令,從而對系統形成危害sql

例如刪除 id 爲 1 的帖子,sql 以下:數據庫

1 $post_id = $_POST['post_id'];
2 
3 $sql = "DELETE FROM posts WHERE user_id = 1 AND id = $post_id";
4 
5 \DB::statement($sql);

 

若是有人在提交 post_id 時輸入 1 OR 1 ,你的語句會組合成這樣:後端

$sql = "DELETE FROM posts WHERE user_id = 1 AND id = 1 OR 1";

通常比較常出如今原生的 SQL 操做,框架通常會解決這方面的問題。一般採用參數控制或過濾特殊字符避免上述的問題。安全

相關文章
相關標籤/搜索