亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        代碼編寫中如何防范SQL注入攻擊

        2020-09-10 20:53:54薛凱
        電子樂園·下旬刊 2020年8期
        關(guān)鍵詞:字符串用戶名校驗(yàn)

        摘要:代碼編寫需要防范SQL注入,本文將闡述如何防范SQL注入攻擊的方法及思路,能夠幫助編程人員減少代碼的SQL注入攻擊。

        關(guān)鍵字:SQL;注入

        一、SQL注入攻擊簡(jiǎn)介

        SQL注入攻擊是目前出現(xiàn)最多的一種網(wǎng)絡(luò)攻擊手段,它的出現(xiàn),不是操作系統(tǒng)本身的問題,而是由于程序員編寫程序時(shí)出現(xiàn)的BUG,攻擊人員通過巧妙的程序輸入,就可以繞過本身合法的SQL驗(yàn)證或SQL語言相關(guān)條件,最終實(shí)現(xiàn)整個(gè)數(shù)據(jù)庫的所有數(shù)據(jù)的過程,也有不少數(shù)破壞者將數(shù)據(jù)販賣,給社會(huì)及個(gè)人帶來極大的危險(xiǎn)和個(gè)人隱私信息的暴露。所以,程序員本身應(yīng)該格外注意SQL注入攻擊是如何發(fā)生的,在編寫代碼中如何去防范SQL注入攻擊的發(fā)生。

        二、SQL注入的攻擊的思路

        SQL注入攻擊最常見的攻擊思路是首先先查找SQL注入的位置,整個(gè)程序在哪些位置出現(xiàn)了SQL注入的漏洞,第二步,通過巧妙的編寫SQL語句,完成對(duì)操作系統(tǒng)及數(shù)據(jù)庫版本類型的判斷,以判斷當(dāng)前數(shù)據(jù)庫是什么廠家,數(shù)據(jù)庫所在的操作系統(tǒng)是什么操作系統(tǒng),以便于我們實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出及其編寫符合相應(yīng)產(chǎn)品的SQL語句。第三步,就是針對(duì)不同類型的數(shù)據(jù)庫和操作系統(tǒng),進(jìn)行SQL注入攻擊。目前針對(duì)網(wǎng)站的SQL注入是最多的,也是最簡(jiǎn)單的一種攻擊方式,當(dāng)程序員在設(shè)計(jì)代碼時(shí),沒有充分考慮到對(duì)用戶輸入的字符串進(jìn)行過濾特殊字符,導(dǎo)致用戶輸入了經(jīng)過精心編寫的一段SQL語句后,就可以完成數(shù)據(jù)的竊取。

        三、代碼編寫中SQL注入防范

        我們?cè)诰帉懘a時(shí)要自行分析源代碼中的漏洞,主要有兩種方法,靜態(tài)分析和動(dòng)態(tài)分析,靜態(tài)代碼分析是指分析源代碼,并不真正執(zhí)行代碼,只是去審核和分析源代碼。動(dòng)態(tài)分析是指在代碼的運(yùn)行過程中動(dòng)態(tài)調(diào)試的加以分析,找到漏洞。而我們通常結(jié)合地使用兩種方法用來防范我們的SQL注入攻擊。

        從不可信任來源收到的數(shù)據(jù)是容易受到感染,這些函數(shù)通常用于執(zhí)行或涉及數(shù)據(jù)庫的SQL語句,我們?cè)诰帉懘祟惡瘮?shù)或代碼時(shí)應(yīng)格外注意外來不可信任的數(shù)據(jù)輸入,每種程序語言均有很多種不同形式來構(gòu)造SQL語句,如果程序員沒有對(duì)輸入源,如表單、cookie、post變量等進(jìn)行篩查或驗(yàn)證,很有可能就存在SQL注入的漏洞。string id=tbx.text; DataTable?dt= SqlHelperCs.Execute(“select * from table where id=’”+id+”’”);以上代碼就是用戶直接將用戶控件的輸入值動(dòng)態(tài)的傳遞給了構(gòu)造SQL語句的函數(shù),并且該語句沒有對(duì)不可信輸入源進(jìn)行有效驗(yàn)證就被執(zhí)行,這很容易引發(fā)SQL注入漏洞。通常我們需要跟蹤變量的初始化來源,并且我們也要密切觀察此變量是否中途被修改,所以我們?cè)诖a編寫時(shí)應(yīng)格外注意用戶輸入等易感染SQL注入的敏感區(qū)域,并使用一定的技巧來避免漏洞的可行性。想要構(gòu)造有效的SQL注入,必須首先搞清楚當(dāng)前數(shù)據(jù)庫注入類型是數(shù)字還是字符串類型,當(dāng)SQL注入攻擊為數(shù)字時(shí),是不需要加入單引號(hào)的,而其他類型則是需要使用單引號(hào)的。使用帶數(shù)字值的SQL語句,例如:select * from table where id=1 使用帶字符串值的SQL語句則為select * from table where id=’1’ 從SQL注入攻擊時(shí),攻擊者非常注意的是使用字符串單引號(hào)的閉合問題,所以我們?cè)诰帉懘a時(shí),需要將特殊字符輸入給過濾掉,特別是單引號(hào),空格之類的特殊輸入符號(hào)。我們可以將輸入的字符進(jìn)行正則表達(dá)式匹配,匹配特殊字符的正則表達(dá)式為((?=[\x21-\x7e]+)[^A-Za-z0-9])x21-\x7e]+) [^A-Za-z0-9])。而針對(duì)于數(shù)字輸入,經(jīng)常以AND 1=1 或 OR 1=1 的形式存在,所以我們又要對(duì)連續(xù)輸入的字符中不能包含SQL關(guān)鍵字為主要鑒別點(diǎn),屏蔽掉AND或OR或UNION或SELECT等等SQL關(guān)鍵字。

        1.領(lǐng)域驅(qū)動(dòng)安全設(shè)計(jì)方法

        領(lǐng)域驅(qū)動(dòng)安全設(shè)計(jì)方法是一種設(shè)計(jì)代碼的方法,以此設(shè)計(jì)的方法可以廣泛用于典型的SQL注入領(lǐng)域,并且它針對(duì)的是一種接收廣泛數(shù)據(jù)輸入安全設(shè)計(jì)方法。大多數(shù)的代碼編寫過程中都會(huì)對(duì)輸入允許使用的字符類型和長(zhǎng)度加以限制,但隨著程序的不斷演化和代碼增加,新添加的函數(shù)有可能會(huì)無意繞過了此類驗(yàn)證,所以我們需要專門為代碼編寫人員創(chuàng)建簡(jiǎn)單的模型,用來保證所涉及到此模式時(shí),都能夠顯示的去表達(dá)及檢驗(yàn)其有效性。通常我們以用戶名和密碼舉例,用戶名需要?jiǎng)?chuàng)建Username類,并且應(yīng)為public類型,并且在類中,我們對(duì)原始輸入的用戶名變量進(jìn)行封裝,在輸入時(shí)進(jìn)行正則表達(dá)式的非法輸入校驗(yàn),這樣做的好處是無論在代碼的任何位置,當(dāng)我們需要使用到用戶名時(shí),都可以使用Username類的對(duì)象,由于該類中變量是經(jīng)過有效性校驗(yàn)的,我們可以認(rèn)為它是有效性防止了SQL注入的變量,這樣做的好處是可以避免重復(fù)性的檢驗(yàn)邏輯,并且提高了團(tuán)隊(duì)安全防范意識(shí),我們只需要對(duì)關(guān)鍵輸入領(lǐng)域安全做好準(zhǔn)入校驗(yàn)即可,這就是領(lǐng)域驅(qū)動(dòng)安全的設(shè)計(jì)方法,追求公共資源的統(tǒng)一校驗(yàn)。

        2、使用存儲(chǔ)過程防范注入

        數(shù)據(jù)庫的存儲(chǔ)過程是應(yīng)用于數(shù)據(jù)庫的配置層來實(shí)現(xiàn)的,可以針對(duì)特定的數(shù)據(jù)庫用戶及相應(yīng)表,它會(huì)限制攻擊者拼湊特殊閉合性字符串,因?yàn)橹荒苷{(diào)用存儲(chǔ)過程,按要求傳入?yún)?shù),不符合參數(shù)數(shù)據(jù)庫控制層將會(huì)阻止并報(bào)錯(cuò)。存儲(chǔ)過程有助于減少潛在SQL注入攻擊,我們可以根據(jù)數(shù)據(jù)庫不同的版本,使用不同的存儲(chǔ)過程語言來編寫存儲(chǔ)過程,Oracle的PL/SQL,SQL Server的Transact-SQL,以及MySQL的SQL2003標(biāo)準(zhǔn)。

        參考文獻(xiàn):

        [1]李博文.淺談SQL注入漏洞的檢測(cè)與防范[J].技術(shù)與市場(chǎng),2020,27(11):102-103.

        [2]劉建亮,喬興華.SQL注入攻擊與防范之研究[J].科學(xué)技術(shù)創(chuàng)新,2020(08):24-25.

        作者簡(jiǎn)介:薛凱,男,山東省青島市,1990年5月,本科,高級(jí)系統(tǒng)架構(gòu)師,軟件設(shè)計(jì)師,青島市黃島區(qū)人民醫(yī)院信息中心工作,主要從事軟件維護(hù)、軟件開發(fā)

        青島市黃島區(qū)人民醫(yī)院 信息中心?266400

        猜你喜歡
        字符串用戶名校驗(yàn)
        《護(hù)士進(jìn)修雜志》投稿程序
        爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
        機(jī)智的快遞員
        大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
        基于加窗插值FFT的PMU校驗(yàn)方法
        鍋爐安全閥在線校驗(yàn)不確定度評(píng)定
        一種新的基于對(duì)稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        一種針對(duì)Java中字符串的內(nèi)存管理方案
        ESET NOD32專家答疑等
        久久伊人精品中文字幕有尤物| 欧美黑寡妇特a级做爰| 国产精品欧美一区二区三区| 熟妇人妻AV中文字幕老熟妇| 老熟女一区二区免费| 国产三级韩三级日产三级| 亚洲av午夜精品无码专区| 女厕厕露p撒尿八个少妇| 久久国产乱子伦精品免费强| 内射中出后入内射极品女神视频| 日韩精品中文一区二区三区在线| 国产av永久无码天堂影院| 另类亚洲欧美精品久久不卡 | 痴汉电车中文字幕在线| 久久国产精品久久久久久| 欧美日韩亚洲国产千人斩| 久久亚洲精品成人av观看| 精品亚洲麻豆1区2区3区| 国产成人综合久久亚洲精品| 国产小屁孩cao大人| 高潮av一区二区三区| 精品偷自拍另类在线观看| www国产亚洲精品久久网站| 欧美性xxx久久| 精品嫩模福利一区二区蜜臀| 又粗又大又硬毛片免费看| 狠狠久久亚洲欧美专区| 久青青草视频手机在线免费观看| 在线免费看91免费版.| 中文字幕在线精品视频入口一区| 欧美成人久久久| 国产av午夜精品一区二区入口| 国产人妻高清国产拍精品| 免费看久久妇女高潮a| 亚洲精品一区二区三区播放| 日韩肥臀人妻中文字幕一区| 亚洲精品熟女国产| 国产高清精品自在线看| 国产精品美女主播在线| 风情韵味人妻hd| 少妇内射视频播放舔大片|