預防SQL注入漏洞函數

來源:互聯網
上載者:User

預防SQL注入漏洞函數.

僅僅代表我的觀點.不怕見笑.有問題請大家指教!我想如果你是牛人,那這個已經不是值得你看的內容,只是覺得對與很多剛入門的ASP程式員來說還是有點實際意義,所以不怕被大家笑話,寫了貼在這裡!

----<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

end function

%>

相關函數
Left(string, length)
 返回指定數目的從字串的左邊算起的字元
 
Asc(string)
 返回與字串的第一個字母對應的 ANSI 字元代碼。
 
Mid(string, start[, length])
 從字串中返回指定數目的字元。
 
***********************************
我自己的做法是把字串限定在8個字元內,呵!(千萬條資料啊,沒誰有這樣大的記錄吧?99,999,999呵!不夠用,才怪了!除非你的資料從來不更新刪出,那也沒辦法,問題是sql到了這樣的時會是怎麼樣的速度)

---<%
if len(request.querystring("ddd"))> 8 then
response.write(黑我啊,不要了。少來)
response.end '最好有這句

'''初步是判斷是否是數字=======IsNumeric 函數
if IsNumeric(request.querystring("ddd")) then

Execute("select * from [table]")

....

else

response.write(黑我啊,不要了。少來)
response.end '最好有這句

%>

當然了,加上上面的函數,在你的SQL過程裡,效果就非常完美了!

呵!!!在變態點做個函數。

---<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

checkStr=replace(str,"asc'," ")

checkStr=replace(str,"mid"," ")

checkStr=replace(str,"delete"," ")

checkStr=replace(str,"drop"," ")

'''呵!!我這裡沒屏蔽select,count,哈!想起來我就笑,太變態了,那其不是我什麼都不用了不是更更安全啊!!!呵!!~^)^~
end function

%>

足夠了,這個函數載入到sql選取記錄集的地方。
如:rsql="select * from table where xxx="&checkstr(request.querystring("xxyy"))&""
或者來就判斷字串

說的有點林亂,但是就是這些了,對於普通的“駭客”已經足夠他毫些時間了。但是對於老到的真正意義的駭客,這些都不是萬能的東西,人家連伺服器都黑,你能怎麼樣啊?嘿!!

看了些資料,結合自己的經驗,寫在這裡。算是自己複習一下,看到的朋友也可以一起交流!QQ:22979784(加的請說明這篇文章的地址,怕擾啊!多多見諒了!)

另外對於sql注入漏洞,好象只是ASP裡多些!其它的我還不是太清楚,所以還是需要提醒所有搞ASP的朋友,請多看看,微軟的最新【windows 指令碼技術】這個東西。
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMe/CN/scd56chs.exe
這裡下,就可以了!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.