国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

談校園網(wǎng)安全之防SQL注入

2009-04-21 06:44李壽財(cái)馬秀峰
關(guān)鍵詞:用戶名字段后臺(tái)

李壽財(cái) 馬秀峰

校園網(wǎng)的安全穩(wěn)定與所用技術(shù)是分不開的,由于ASP技術(shù)入門門檻不高,所以校園網(wǎng)一般都是用ASP技術(shù)來架構(gòu)的。由于開發(fā)人員的技術(shù)水平參差不齊,致使一部分程序存在安全隱患,導(dǎo)致網(wǎng)站數(shù)據(jù)被修改、刪除等現(xiàn)象。筆者在對(duì)學(xué)校網(wǎng)站兩年多的開發(fā)和維護(hù)過程中,發(fā)現(xiàn)了很多這樣的問題,其中大部分為SQL注入。

一、SQL注入原理

SQL攻擊的根源在于,程序命令和用戶數(shù)據(jù)之間沒有做到?jīng)芪挤置?。這使得攻擊者有機(jī)會(huì)將程序命令看成是用戶輸入的數(shù)據(jù)提交給Web程序,以發(fā)號(hào)施令,為所欲為。為了SQL攻擊,攻擊者需要在常規(guī)輸入中混入將被解釋為命令的“數(shù)據(jù)”。

SQL注入能使攻擊者繞過認(rèn)證機(jī)制,完全控制遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫(kù)。SQL是結(jié)構(gòu)化查詢語(yǔ)言的簡(jiǎn)稱,它是訪問數(shù)據(jù)庫(kù)的事實(shí)標(biāo)準(zhǔn)。目前,大多數(shù)Web應(yīng)用都使用SQL語(yǔ)句來操縱存放在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。幾乎所有的Web應(yīng)用在后臺(tái)都使用某種SQL數(shù)據(jù)庫(kù)。跟大多數(shù)語(yǔ)言一樣,SQL語(yǔ)法允許數(shù)據(jù)庫(kù)命令和用戶數(shù)據(jù)混雜在一起。如果開發(fā)人員不細(xì)心的話,用戶數(shù)據(jù)就有可能被解釋成命令,這樣遠(yuǎn)程用戶不僅能向Web應(yīng)用輸入數(shù)據(jù),而且還可以在數(shù)據(jù)庫(kù)上執(zhí)行任意命令。

二、判斷SQL注入的方法

SQL注人是通過在地址欄中附加一些代碼,使服務(wù)器執(zhí)行這些SQL語(yǔ)句來實(shí)現(xiàn)的。一般的文章管理系統(tǒng)、下載系統(tǒng)、論壇、留言本、相冊(cè)等都會(huì)有個(gè)發(fā)布信息的頁(yè)面,例如show.asp?id=,這說明此頁(yè)面正在調(diào)用SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)的信息。一般而言,SQL語(yǔ)句原貌大致如下:

select * from 表名 where 字段=xx

如果這個(gè)show.asp對(duì)后面的id整型參數(shù)無過濾,就可能存在SQL注入漏洞。一般使用經(jīng)典的1=1和1=2測(cè)試方法來判斷SQL注入漏洞是否存在。例如在網(wǎng)址http://www.xxx.com/show.asp?id=35后加上and 1=1后, show.asp運(yùn)行正常,而且與http://www.xxx.com/show.asp?id=35得到的頁(yè)面相同;在http://www.xxx.com/show.asp?id=35 后加上 1=2, show.asp運(yùn)行異常。到這里基本上可以斷定頁(yè)面是否存在SQL注入漏洞。

三、解決SQL注入的方法

黑客是通過不斷的試誤進(jìn)行逐層突破。防止一般的SQL注入有以下三種方法。

1.在需要防范注入頁(yè)面加入防注入系統(tǒng)程序

一般ASP程序在調(diào)用數(shù)據(jù)庫(kù)信息前需要建立數(shù)據(jù)庫(kù)鏈接,負(fù)責(zé)數(shù)據(jù)庫(kù)鏈接的程序代碼一般都保存在一個(gè)ASP文件中,同時(shí)這個(gè)文件一般以“!--#include file=”conn.asp”--”的形式被其他ASP程序調(diào)用。所以,我們可以通過在這個(gè)數(shù)據(jù)庫(kù)鏈接文件內(nèi)容前加上下面的防注入代碼,來達(dá)到防止別人進(jìn)行注入。

SQL_injdata=":|;|>|<|--|sp_|xp_||dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update |count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then

For Each SQL_Get In Request.QueryString

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then

Response.Write "SQL通用防注入系統(tǒng)"

Response.end

end if

next

Next

End If

If Request.Form<>"" Then

For Each Sql_Post In Request.Form

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then

Response.Write "SQL通用防注入系統(tǒng)"

Response.end

end if

next

next

End If

2.修改數(shù)據(jù)庫(kù)中的用戶名和密碼字段及后臺(tái)頁(yè)面的名稱

通過SQL注入分析器可以輕松跳過防注入系統(tǒng)并自動(dòng)分析其注入點(diǎn)。找到注入點(diǎn)后,黑客會(huì)不斷地對(duì)用戶名和密碼進(jìn)行推測(cè),推測(cè)出正確的用戶名和密碼后,他們還會(huì)不斷地猜測(cè)用戶的后臺(tái)登錄頁(yè)面名稱。鑒于此,筆者建議校園網(wǎng)管理人員把數(shù)據(jù)庫(kù)的用戶名和密碼字段及后臺(tái)頁(yè)面改為不太常用的名稱,另外,不要把后臺(tái)登陸頁(yè)面的超鏈接放到主頁(yè)面上。

3.雙賬號(hào)策略

某些強(qiáng)大的SQL注入分析器不僅可以輕松分析注入點(diǎn),還可以分析網(wǎng)站的管理員賬號(hào)及密碼。既然無法逃過檢測(cè),那我們就做兩個(gè)賬號(hào),一個(gè)是普通的管理員賬號(hào),一個(gè)是防止注入的賬號(hào)。雙賬號(hào)策略的具體方法是首先將管理員的賬號(hào)字段的數(shù)據(jù)類型進(jìn)行修改,文本型改成最大字段255或選擇備注型,密碼的字段也進(jìn)行相同設(shè)置。其次將這個(gè)普通管理員賬號(hào)放到數(shù)據(jù)表中第一行并輸入大量中文字符。最后,把真正的防注入的SQL賬號(hào)放入第二行后的任意位置。

通過上面的三種策略初步完成了SQL注入攻擊的防范,基本杜絕了ASP程序被惡意SQL注人數(shù)據(jù)所帶來的危害。

(作者單位:山東日照市曲阜師范大學(xué)信息技術(shù)與傳播學(xué)院)

猜你喜歡
用戶名字段后臺(tái)
《護(hù)士進(jìn)修雜志》投稿程序
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
《護(hù)士進(jìn)修雜志》投稿程序
《護(hù)士進(jìn)修雜志》投稿程序
后臺(tái)暗戀
機(jī)智的快遞員
前臺(tái)、后臺(tái)精彩花絮停不了
以“后臺(tái)”的名義節(jié)省電池用量
CNMARC304字段和314字段責(zé)任附注方式解析
無正題名文獻(xiàn)著錄方法評(píng)述
英山县| 历史| 衡阳市| 雷波县| 仁化县| 乐昌市| 建平县| 陕西省| 怀集县| 临安市| 贞丰县| 清河县| 诸暨市| 黄浦区| 疏勒县| 闻喜县| 登封市| 凌云县| 思南县| 防城港市| 定西市| 麦盖提县| 古交市| 时尚| 马山县| 苍南县| 嘉峪关市| 田林县| 绥芬河市| 桃园县| 揭东县| 白山市| 宁南县| 宁夏| 罗定市| 杭州市| 道孚县| 博乐市| 景泰县| 富川| 土默特左旗|