阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 公務升官等考試_薦任_資訊處理:資料庫應用#103677
科目:公職◆資料庫應用
年份:110年
排序:0

申論題內容

三、請解釋何謂 SQL injection 以及要如何預防?(10 分)常見的 SQL injection 攻擊手法為「略過權限檢查」與「注入 SQL 子語法」等,請寫出一段有 SQL injection 漏洞的網頁程式碼以及可能的 SQL injection 攻擊寫法。 (10 分)

詳解 (共 1 筆)

詳解 提供者:114年高考上榜

為了預防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表被刪除。攻擊者可以透過類似的方式,取得敏感資料或控制資料庫。