999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL注入攻擊及在Java Web應用中的防御方法研究

2016-03-16 05:50:36梁天一
中國新通信 2016年3期
關鍵詞:網絡安全數據庫

梁天一

【摘要】 互聯網的高速發展使得網絡安全成為各界關注的焦點問題。人們把在電子商務、社交網絡等互聯網應用中產生的大量重要數據存儲于數據庫中,而這些數據庫便成為網絡黑客的攻擊目標。目前,SQL注入攻擊是網絡中最為猖獗的黑客攻擊行為之一。本文將詳細闡述SQL注入式攻擊的原理,并給出在Java Web應用程序中防御SQL注入攻擊的有效方法。

【關鍵詞】 SQL注入 網絡安全 數據庫 Java Web 防御

如今,互聯網已經融入現代社會的方方面面,電子商務、社交網絡、在線教育(MOOC)已經成為當下人們生活不可或缺的組成。人們在使用這些互聯網應用時,會產生大量與自身相關的數據存儲在數據庫中。由于這些數據的潛在價值(如個人隱私數據、網銀賬戶等),使得它們成為網絡黑客主要的攻擊目標之一。目前,最為常見的、破壞性最強的針對互聯網應用數據庫系統的攻擊方式是SQL注入攻擊。綜合統計資料來看,SQL注入約占據互聯網安全威脅性事件總數的1/3,且程逐年遞增趨勢;DB Networks的統計表明,2014年SQL注入漏洞數量較2013年增長104%[1]。因此,本文將探討、研究注入技術背后的原理、實施方法和分類,來更好的應對這類攻擊;同時結合Java Web開發技術,給出在Java Web應用程序中防御SQL注入攻擊的有效方法。

一、SQL注入攻擊的原理

SQL注入攻擊(SQL Injection Attack, SQLI),是指利用應用程序層與數據庫層之間的安全漏洞、通過惡意SQL語句攻擊這些漏洞來非法獲取目標數據的行為。簡單來說,精心設計的惡意SQL語句會從應用程序前端提交至后臺數據庫執行,執行過程中應用程序開發者編寫的原始SQL語句會被惡意語句篡改,從而暴露攻擊者想要獲取的隱私數據。

圖1描述了一個B/S架構應用程序遭受SQL注入攻擊的基本流程。假設該系統關系型數據庫中存儲有某單位全體員工的個人信息,提交URL:

demo.com/liststaff?staff_id=13098

Web應用服務器將獲取到參數staff_id=130

98,并在數據庫中執行下列SQL查詢語句:

SELECT name, gender, age, salary, address

FROM t_staff

WHERE staff_id = ‘13098;

數據庫將返回員工ID(staff_id)為13098的員工的詳細個人詳細,如姓名、收入、家庭住址等。如果攻擊者想要竊取全部員工的個人信息,針對上述SQL查詢語句,他可以構造這樣一條請求URL:

demo.com/liststaff?staff_id=13098 or ‘1=1

那么在數據庫中將執行下列查詢語句:

SELECT name, gender, age, salary, address

FROM t_staff

WHERE staff_id = ‘13098 or ‘1 = 1;

由于staff_id=‘13098 or ‘1 = 1為永真句,因此該系列語句等效為:

SELECT name, gender, age, salary, address

至此,攻擊者成功竊取了全部員工的個人信息。

二、Java Web程序對SQL注入攻擊的防御方法

盡管Java Web技術在設計之初就十分重視安全性,Java Web技術也是目前最安全的開發技術之一,但在實際開發和應用中,使用Java Web技術構建的應用仍有可能受到SQL注入攻擊的破壞。本文將討論幾種在Java Web應用中防御SQL注入攻擊的有效方法。

2.1 使用正則表達式過濾參數

從前文論述我們可以看出,SQL注入攻擊的核心在于向數據庫服務器提交含有特殊含義的字符,改變原始SQL語句的語義。因此,使用正則表達式過濾掉用戶提交參數中的特殊字符(如轉義字符),便能大大降低發生注入攻擊的概率。

上述代碼中的正則表達式”.*([‘;]+|(--)+).*”可以檢測出用戶提交參數中的特殊字符(如轉義字符單引號),將其替換為空格符,防止數據庫受到注入攻擊。

public static String filterSQLInjection(String param) {

return param.replaceAll(".*([;]+|(--)+).*", "");

}

String userName = filterSQLInjection(request. getParameter(userName));

String userPasswd = filterSQLInjection(request. getParameter(userPasswd));

2.2 使用預編譯技術防止SQL注入

SQL注入攻擊能夠實現的基本前提是程序員使用拼接SQL語句的方式編寫數據庫操作語句,如:

String sql = “SELECT * FROM t_admin WHERE user_ name = ” + userName + “ AND password = ” + userPasswd;

ResultSet rs = statement.executeQuery(sql);

因此,防御SQL注入攻擊的最有效方法是禁止使用拼接的方法編寫SQL語句,轉而使用預編譯技術進行數據庫操縱方面的開發。

所謂預編譯,指的是將格式結構固定的SQL語句編譯后,存儲在數據庫緩存中,當調用該語句時,直接執行緩存中編譯后的結果。使用預編譯機制可以消除注入攻擊的隱患,因為SQL語句已經通過編譯,傳入的參數不會跟其發生任何匹配關系。在Java中,通過PreparedStatement類實現了預編譯相關功能,使用方法如下:

String sql= "SELECT * FROM t_admin WHERE user_ name=? AND password=?";

PreparedStatement psmt=conn.prepareSattement(sql);

psmt.setString(1, userName);

psmt.setString(2, userPasswd);

ResultSet rs = preState.executeQuery();

三、結束語

本文結合實例,論述了SQL注入攻擊的原理和實施過程,討論了SQL注入攻擊的分類和最新發展;最后,提出了Java Web應用程序防御SQL注入的幾種有效方法,具有一定借鑒意義。

參 考 文 獻

[1] 王麗麗, 彭一楠, 王軼駿. 淺析SQL盲注攻擊的實現[J]. 信息安全與通信保密, 2008, 05期(05):71-73.

猜你喜歡
網絡安全數據庫
網絡安全知多少?
工會博覽(2023年27期)2023-10-24 11:51:28
網絡安全
網絡安全人才培養應“實戰化”
上網時如何注意網絡安全?
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
我國擬制定網絡安全法
聲屏世界(2015年7期)2015-02-28 15:20:13
主站蜘蛛池模板: 精品自拍视频在线观看| 白浆视频在线观看| 日本欧美午夜| 天天视频在线91频| 强奷白丝美女在线观看| 91精品国产情侣高潮露脸| 国产手机在线ΑⅤ片无码观看| 在线播放真实国产乱子伦| 综合久久五月天| 精品国产黑色丝袜高跟鞋| 久久精品国产在热久久2019| 欧美一级在线看| 国产一级毛片yw| 欧美乱妇高清无乱码免费| 2021最新国产精品网站| 亚洲V日韩V无码一区二区| 精品国产网站| 欧美日本激情| 亚洲中文字幕国产av| 青青热久免费精品视频6| 国产在线视频自拍| 欧美午夜小视频| 欧美一区二区三区欧美日韩亚洲| 婷婷综合色| 精品伊人久久大香线蕉网站| 亚洲第一视频网| www.youjizz.com久久| 国产午夜人做人免费视频中文 | 91美女视频在线| 狠狠亚洲婷婷综合色香| 日韩在线观看网站| 尤物特级无码毛片免费| 国产成人亚洲无吗淙合青草| 亚洲制服丝袜第一页| av一区二区三区高清久久| 国产无码网站在线观看| 亚洲欧美人成电影在线观看| 国产在线精品美女观看| 中文国产成人精品久久| 亚洲天堂视频在线播放| 亚洲欧美日本国产专区一区| 成人毛片免费在线观看| 在线观看国产小视频| 久久国产精品夜色| 亚洲午夜国产精品无卡| 强乱中文字幕在线播放不卡| 啊嗯不日本网站| 亚洲欧美天堂网| 免费A级毛片无码无遮挡| 第一区免费在线观看| 中文字幕首页系列人妻| 欧美成人二区| 日韩麻豆小视频| 日韩一区二区在线电影| 97色伦色在线综合视频| 国产男女免费完整版视频| 小说 亚洲 无码 精品| 97国内精品久久久久不卡| 久久久精品无码一二三区| 国产成人成人一区二区| 天堂中文在线资源| 2018日日摸夜夜添狠狠躁| 特级精品毛片免费观看| 国产精品人成在线播放| 亚洲精品无码成人片在线观看| 91久久青青草原精品国产| 国产h视频免费观看| 亚洲毛片网站| 亚洲欧美成人影院| 女人毛片a级大学毛片免费| 欧美亚洲国产一区| 一本视频精品中文字幕| 国产超碰一区二区三区| 欧美一级在线播放| 欧美精品成人一区二区视频一| 5388国产亚洲欧美在线观看| 国产乱肥老妇精品视频| 欧美笫一页| 99免费在线观看视频| 九色视频线上播放| 456亚洲人成高清在线| 国产成人无码久久久久毛片|