為了預防SQL注入攻擊,可以遵循以下建議:
1.使用參數化查詢或預編譯語句。
2.對所有用戶輸入進行驗證和過濾,以避免非法輸入。
3.不要將敏感資料儲存在Web應用程序的可訪問目錄中。
4.不要使用默認的數據庫帳戶和密碼,並為每個應用程序使用單獨的帳戶。
5.定期更新和測試應用程序和數據庫安全性
以下是一個簡單的有SQL注入漏洞的PHP網頁程式碼:
php
<?php
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE id = " . $id;
$result = mysqli_query($conn, $sql);
// ...
?>
如果攻擊者在id參數中注入了惡意代碼,例如:1; DROP TABLE users;--,那麼SQL語句會變成:
sql
SELECT * FROM users WHERE id = 1; DROP TABLE users;--'
這將導致users表被刪除。攻擊者可以透過類似的方式,取得敏感資料或控制資料庫。