SQL注入
所謂SQL注入婶溯,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請(qǐng)求的查詢字符串跌穗,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。具體來說懒鉴,它是利用現(xiàn)有應(yīng)用程序诡挂,將(惡意的)SQL命令注入到后臺(tái)數(shù)據(jù)庫引擎執(zhí)行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個(gè)存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫临谱,而不是按照設(shè)計(jì)者意圖去執(zhí)行SQL語句璃俗。?[1]?比如先前的很多影視網(wǎng)站泄露VIP會(huì)員密碼大多就是通過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊.
SQL注入的產(chǎn)生原因通常表現(xiàn)在以下幾方面:①不當(dāng)?shù)念愋吞幚硐つ虎诓话踩?a target="_blank">數(shù)據(jù)庫配置城豁;③不合理的查詢集處理;④不當(dāng)?shù)腻e(cuò)誤處理抄课;⑤轉(zhuǎn)義字符處理不合適唱星;⑥多個(gè)提交處理不當(dāng)雳旅。
防護(hù)
歸納一下,主要有以下幾點(diǎn):
1.永遠(yuǎn)不要信任用戶的輸入间聊。對(duì)用戶的輸入進(jìn)行校驗(yàn)攒盈,可以通過正則表達(dá)式,或限制長度哎榴;對(duì)單引號(hào)和
雙"-"進(jìn)行轉(zhuǎn)換等型豁。
2.永遠(yuǎn)不要使用動(dòng)態(tài)拼裝sql,可以使用參數(shù)化的sql或者直接使用存儲(chǔ)過程進(jìn)行數(shù)據(jù)查詢存取尚蝌。
3.永遠(yuǎn)不要使用管理員權(quán)限的數(shù)據(jù)庫連接迎变,為每個(gè)應(yīng)用使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫連接。
4.不要把機(jī)密信息直接存放飘言,加密或者h(yuǎn)ash掉密碼和敏感的信息衣形。
5.應(yīng)用的異常信息應(yīng)該給出盡可能少的提示,最好使用自定義的錯(cuò)誤信息對(duì)原始錯(cuò)誤信息進(jìn)行包裝
6.sql注入的檢測(cè)方法一般采取輔助軟件或網(wǎng)站平臺(tái)來檢測(cè)姿鸿,軟件一般采用sql注入檢測(cè)工具jsky谆吴,網(wǎng)站平臺(tái)就有億思網(wǎng)站安全平臺(tái)檢測(cè)工具。MDCSOFT SCAN等苛预。采用MDCSOFT-IPS可以有效的防御SQL注入纪铺,XSS攻擊等。
XSS
XSS攻擊通常指的是通過利用網(wǎng)頁開發(fā)時(shí)留下的漏洞碟渺,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁,使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁程序突诬。這些惡意網(wǎng)頁程序通常是JavaScript苫拍,但實(shí)際上也可以包括Java、 VBScript旺隙、ActiveX绒极、 Flash 或者甚至是普通的HTML。攻擊成功后蔬捷,攻擊者可能得到包括但不限于更高的權(quán)限(如執(zhí)行一些操作)垄提、私密網(wǎng)頁內(nèi)容、會(huì)話和cookie等各種內(nèi)容周拐。
攻擊手段:盜用cookie等
特點(diǎn):隱蔽性強(qiáng)铡俐、發(fā)起容易等特點(diǎn)
常用的XSS攻擊手段和目的有:
1、盜用cookie妥粟,獲取敏感信息审丘。
2、利用植入Flash勾给,通過crossdomain權(quán)限設(shè)置進(jìn)一步獲取更高權(quán)限滩报;或者利用Java等得到類似的操作锅知。
3、利用iframe脓钾、frame售睹、XMLHttpRequest或上述Flash等方式,以(被攻擊)用戶的身份執(zhí)行一些管理動(dòng)作可训,或執(zhí)行一些一般的如發(fā)微博昌妹、加好友、發(fā)私信等操作沉噩。
4捺宗、利用可被攻擊的域受到其他域信任的特點(diǎn),以受信任來源的身份請(qǐng)求一些平時(shí)不允許的操作川蒙,如進(jìn)行不當(dāng)?shù)耐镀被顒?dòng)蚜厉。
5、在訪問量極大的一些頁面上的XSS可以攻擊一些小型網(wǎng)站畜眨,實(shí)現(xiàn)DDoS攻擊的效果昼牛。
防御
傳統(tǒng)的XSS防御在進(jìn)行攻擊鑒別時(shí)多采用特征匹配方式,主要是針對(duì)“javascript”這個(gè)關(guān)鍵字進(jìn)行檢索康聂,但是這種鑒別不夠靈活贰健,凡是提交的信息中各有“javascript”時(shí),就被硬性的被判定為XSS攻擊恬汁。
通過優(yōu)化Web應(yīng)用開發(fā)來減少漏洞伶椿,避免被攻擊:1)用戶向服務(wù)器上提交的信息要對(duì)URL和附帶的的HTTP頭、POST數(shù)據(jù)等進(jìn)行查詢氓侧,對(duì)不是規(guī)定格式脊另、長度的內(nèi)容進(jìn)行過濾。2)實(shí)現(xiàn)Session標(biāo)記(session tokens)约巷、CAPTCHA系統(tǒng)或者HTTP引用頭檢查偎痛,以防功能被第三方網(wǎng)站所執(zhí)行。3)確認(rèn)接收的的內(nèi)容被妥善的規(guī)范化独郎,僅包含最小的踩麦、安全的Tag(沒有javascript),去掉任何對(duì)遠(yuǎn)程內(nèi)容的引用(尤其是樣式表和javascript)氓癌,使用HTTP only的cookie谓谦。
防范XSS漏洞原則包括:
(1)不信任用戶提交的任何內(nèi)容,對(duì)所有用戶提交內(nèi)容進(jìn)行可靠的輸入驗(yàn)證贪婉,包括對(duì)URL茁计、查詢關(guān)鍵字、HTTP頭、REFER星压、POST數(shù)據(jù)等践剂,僅接受指定長度范圍內(nèi)、采用適當(dāng)格式娜膘、采用所預(yù)期的字符的內(nèi)容提交逊脯,對(duì)其他的一律過濾。盡量采用POST而非GET提交表單竣贪;對(duì)“<”军洼,“>”,“演怎;”匕争,“””等字符做過濾;任何內(nèi)容輸出到頁面之前都必須加以en-code爷耀,避免不小心把htmltag顯示出來甘桑。
(2)實(shí)現(xiàn)Session 標(biāo)記(session tokens)、CAPTCHA(驗(yàn)證碼)系統(tǒng)或者HTTP引用頭檢查歹叮,以防功能被第三方網(wǎng)站所執(zhí)行跑杭,對(duì)于用戶提交信息的中的img等link,檢查是否有重定向回本站咆耿、不是真的圖片等可疑操作德谅。
(3)cookie 防盜。避免直接在cookie中泄露用戶隱私萨螺,例如email窄做、密碼,等等慰技;通過使cookie和系統(tǒng)IP綁定來降低cookie泄露后的危險(xiǎn)浸策。這樣攻擊者得到的cookie沒有實(shí)際價(jià)值,很難拿來直接進(jìn)行重放攻擊惹盼。
(4)確認(rèn)接收的內(nèi)容被妥善地規(guī)范化,僅包含最小的惫确、安全的Tag(沒有JavaSeript)手报,去掉任何對(duì)遠(yuǎn)程內(nèi)容的引用(尤其是樣式表和JavaScript),使用HTTPonly的cookie改化。