阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 經濟部所屬事業機構_新進職員甄試_資訊:1.資訊管理 2.程式設計#103708
科目:國營事業◆1.資訊管理 2.程式設計
年份:110年
排序:0

申論題內容

三、簡答題:(4題,每題5分,共20分)
 (一)請說明何謂SQL Injection?如何防範?

詳解 (共 1 筆)

詳解 提供者:佐伯貴理華

https://blog.kennycoder.io/2020/01/09/SQL-injection-原理介紹與防範教學-工程師絕不能犯的低級錯誤/

透過修改 SQL 語句,進而有辦法達到存取資料庫資料的功能。


防範 SQL injection 方法

  1. Escape Parameters

    也就是透過正規表達式來對使用者輸入的參數進行檢查,如果有符合 SQL 語法的關鍵字,則將它替換成合法字元等作法。

    缺點:

    1. SQL 語法關鍵字一旦新增,檢查規則就要跟著改變
    2. 總會有漏網之魚,無法全面防範
  2. Query Parameterization

    參數化查詢,絕大多數的情況用這防範方式是最安全的!可以說是唯一安全解法!其實它的原理就是資料庫語法中的佔位符號。

   3.  White List 白名單機制

這個白名單機制是在特殊的情況下使用的,也就是在 Query Parameterization 可能會失效的情況下使用。