[發明專利]SQL語句注入攻擊的檢測方法及裝置在審
| 申請號: | 202011608315.6 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112650769A | 公開(公告)日: | 2021-04-13 |
| 發明(設計)人: | 張斯威;林蔡宗;江雪峰;童振飛 | 申請(專利權)人: | 山石網科通信技術股份有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F40/211;G06F40/253;G06F40/30;G06K9/00;G06F21/56;G06F21/57 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 肖璐 |
| 地址: | 215163 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | sql 語句 注入 攻擊 檢測 方法 裝置 | ||
本申請公開了一種SQL語句注入攻擊的檢測方法及裝置。其中,該方法包括:獲取目標請求參數,其中,目標請求參數為SQL語句中的可疑注入攻擊參數;確定目標請求參數的指紋,其中,指紋為目標請求參數中的每個詞素對應的令牌組成的集合,令牌用于標識詞素;對指紋進行分割處理,得到多個短指紋特征;依據多個短指紋特征確定目標請求參數是否為SQL語句中的注入攻擊參數。本申請解決了由于目前主流的SQL注入攻擊的檢測手段,主要依賴于正則表達式的規則集來進行防御造成的檢測SQL注入攻擊時,常常出現誤報的情況的技術問題。
技術領域
本申請涉及網絡安全領域,具體而言,涉及一種SQL語句注入攻擊的檢測方法及裝置。
背景技術
SQL注入攻擊是WEB安全中一種常見的攻擊,由于SQL語言解釋型執行方式,在后端服務器執行SQL操作數據庫的過程中,惡意構造的數據可能會被當做SQL的一部分被執行。在服務端對參數過濾不嚴的情況下,攻擊者可以通過提交惡意參數,讓服務器執行預期之外的破壞性指令。
例如下述SQL語句,其作用為從數據庫員工數據表中查詢指定員工編號的信息:
select*from employee where employee_no=[param]
其中,employee為數據表名,employee_no為員工編號字段名,[param]為待查詢的員工編號數值。當用戶輸入待查詢的員工編號時,后臺服務器會將用戶輸入的內容原原本本地拼接到[param]位置。
通常情況下[param]參數會是數字,比如對于員工id為1的用戶,通過下述方式發送參數:
www.company.com/info.php?employ_no=1
但如果是惡意構造的參數:
www.company.com/index.php?employ_no=1;drop table employee--
此時后臺的查詢語句就會變成:
select*from employee where employee_no=1;drop table employee--
分號在SQL語法中是語句的分隔符,由于惡意參數,原有的內容變成了兩個SQL語句。
第一個語句:
select*from employee where employee_no=1
實現了原有功能查詢編號為1員工信息。
而第二個語句:
drop table employee--
原本應該是輸入參數的一部分作為數據解釋,但實際被當作SQL語句執行刪除員工數據表的操作,是惡意攻擊的語句。
當前主流的SQL注入的檢測手段,主要依賴基于正則表達式的規則集來進行防御,但限于正則規則本身的文法表達能力,造成檢測SQL注入攻擊時,常常出現誤報的情況,造成用戶訪問異常、網站業務中斷等問題。在添加維護規則過程中,可能存在提升檢出能力同時增加誤報兩難的情況。
針對上述的問題,目前尚未提出有效的解決方案。
發明內容
本申請實施例提供了一種SQL語句注入攻擊的檢測方法及裝置,以至少解決由于目前主流的SQL注入攻擊的檢測手段,主要依賴于正則表達式的規則集來進行防御造成的檢測SQL注入攻擊時,常常出現誤報的情況的技術問題。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山石網科通信技術股份有限公司,未經山石網科通信技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011608315.6/2.html,轉載請聲明來源鉆瓜專利網。





