[發明專利]一種基于語法分析的SQL防注入方法和裝置在審
| 申請號: | 201710710787.4 | 申請日: | 2017-08-18 |
| 公開(公告)號: | CN107526968A | 公開(公告)日: | 2017-12-29 |
| 發明(設計)人: | 劉浩 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F17/30 |
| 代理公司: | 濟南誠智商標專利事務所有限公司37105 | 代理人: | 王汝銀 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 語法分析 sql 注入 方法 裝置 | ||
1.一種基于語法分析的SQL防注入方法,其特征是,包括以下步驟:
獲取用戶表單輸入;
對用戶表單輸入進行預處理操作;
根據構建的詞法規則識別預處理操作后語句中的詞素;
根據構建的語法規則對詞素進行語法分析,提煉出抽象語法結構串;
判斷抽象語法結構串與標準結構串是否匹配,如果匹配,則判定用戶輸入為簡單結構,不構成SQL注入攻擊;如果不匹配,則判定用戶輸入為復雜結構,構成SQL注入攻擊。
2.如權利要求1所述的一種基于語法分析的SQL防注入方法,其特征是,在對用戶表單輸入進行預處理操作之前,還包括:
提取用戶表單輸入,加入關鍵字組裝成完整的SQL語句。
3.如權利要求1所述的一種基于語法分析的SQL防注入方法,其特征是,所述預處理操作,包括:
對用戶表單輸入進行過濾注釋和轉換編碼,所述過濾注釋包括去掉用戶表單輸入中的干擾字符串,所述轉換編碼包括對用戶表單輸入中的十六進制編碼進行轉換。
4.如權利要求1所述的一種基于語法分析的SQL防注入方法,其特征是,所述根據構建的詞法規則識別預處理操作后語句中的詞素,包括,
識別出預處理后的用戶表單輸入中的單詞,判斷單詞是屬于關鍵字、變量名、常量名中的哪一種,并形成詞素列表。
5.如權利要求4所述的一種基于語法分析的SQL防注入方法,其特征是,所述根據構建的語法規則對詞素進行語法分析,提煉出抽象語法結構串,包括:
對詞素列表進行語法分析,根據關鍵字提煉出用戶輸入的抽象字符串,并判斷抽象字符串的類型。
6.如權利要求5所述的一種基于語法分析的SQL防注入方法,其特征是,所述抽象字符串的類型,包括:
非注入,指正常用戶輸入,不構成注入攻擊;值注入,將表達式右值替換為子查詢語句或算術表達式;條件注入,擴展SQL語句的條件表達式;組合注入,利用SQL組合運算符構造復合查詢來得到額外的數據庫信息;語句注入,在原SQL語句后面附加額外的語句。
7.如權利要求1所述的一種基于語法分析的SQL防注入方法,其特征是,所述標準結構串為非注入輸入類型,語法表達式為A=V andA=V,即單個或多個A=V,這里的A表示變量,V表示值。
8.如權利要求1至7任一項權利要求所述方法的一種基于語法分析的SQL防注入裝置,其特征是,包括:
輸入提取模塊,完成對用戶輸入的提取;
預處理模塊,完成對用戶輸入的過濾注釋和轉換編碼的輔助工作;
詞素列表提取模塊,完成對用戶輸入單詞的提取,并對用戶輸入單詞的詞性進行分析形成詞素列表;
語法結構分析模塊,對詞素列表進行分析,完成抽象字符串的抽取;
語法結構串比對模塊,對抽取抽象字符串與標準字符串進行比較,判斷是否是SQL注入。
9.如權利要求8所述的一種基于語法分析的SQL防注入裝置,其特征是,還包括:
SQL語句組裝模塊,對提取的用戶輸入加入關鍵字形成完整的SQL語句。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710710787.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種風險地址識別方法、裝置以及電子設備
- 下一篇:一種電視機五金件沖壓設備





