国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
高手來(lái)教你怎么樣防注入

     用SQL注入技術(shù)來(lái)攻擊有此漏洞的網(wǎng)站入侵手法已經(jīng)流行N多年了,時(shí)已至今,還是有好多網(wǎng)站因起漏洞而被入侵,網(wǎng)站被黑客入侵,輕則換個(gè)首頁(yè),損壞公司形像,重則丟失數(shù)據(jù),丟失客戶(hù),給企業(yè)帶來(lái)經(jīng)濟(jì)損失。SQL注入到今天也是老生常談了,有好多程序員都是大學(xué)剛畢業(yè)的,他們有些可能在書(shū)本上接觸過(guò)SQL注入的原理,對(duì)此有些大概的理念,有些可能根本不知道什么叫SQL注入,今天我們不談SQL注入是怎么產(chǎn)生的,關(guān)于這方面的資料在網(wǎng)上搜索一下,實(shí)在是多如牛毛,實(shí)在想學(xué)習(xí)一下的話,看本站發(fā)布的小竹寫(xiě)的《SQL注入天書(shū)》一文,相信看完后,你一定會(huì)對(duì)SQL注入原理有個(gè)理性的認(rèn)識(shí),這個(gè)不是我們今天要談的重點(diǎn),今天我們要談怎么樣防止SQL注入。本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    我們好多程序員,或是網(wǎng)絡(luò)公司中的技術(shù)人員,可以說(shuō)是對(duì)網(wǎng)絡(luò)安全一點(diǎn)不懂,他們沒(méi)有自己的技術(shù)研發(fā)實(shí)力,就拿我們青海當(dāng)?shù)貋?lái)說(shuō)吧,有好多網(wǎng)站制作公司幾乎不懂什么叫做網(wǎng)絡(luò)安全,不懂SQL注入原理,這樣的公司在青海市場(chǎng)中還占決大多數(shù),包括已經(jīng)做此行有好幾年經(jīng)驗(yàn)的某些“大”公司在內(nèi),這樣的背景下,他們做出來(lái)的網(wǎng)站安全性就非常另人擔(dān)憂,所以我很有必要在這里介紹一下怎么樣防止SQL注入攻擊。本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    首先我們認(rèn)識(shí)一下我們技術(shù)員常犯的一些錯(cuò)誤問(wèn)題。本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    好多公司的網(wǎng)站制作技術(shù)人員都以為網(wǎng)站安全沒(méi)有什么,只要加個(gè)通用防注入程序就一切全搞定了,都不以為然,其實(shí)通用防注入程序固然很好用,其也不是萬(wàn)能的,雖然可以擋住大部份黑客入侵,但是它本身也存在著一定的擔(dān)缺陷,比如,有用戶(hù)提交表單的時(shí)候,for example,用戶(hù)留言的時(shí)候,用戶(hù)不小心輸入一個(gè)半角的單引號(hào),或是雙引號(hào),或是留言?xún)?nèi)容中出現(xiàn)一些and 之類(lèi)的關(guān)鍵字時(shí),我們的通用防注入程序會(huì)把正常的提交判斷成惡意的攻擊行為,這樣用戶(hù)留言就不能成功,更嚴(yán)重的做法就是直接封了客戶(hù)的IP,讓網(wǎng)站都不能打開(kāi),而好多用戶(hù)本身不懂安全的,更別說(shuō)攻擊你網(wǎng)站了,他不知道為什么留不了言,有可能讓我們的企業(yè)失去一個(gè)潛在客戶(hù)。所以有時(shí)候我們不能太過(guò)依賴(lài)通用防注入程序。本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    我們打開(kāi)通用防注入程序,看看他是怎么寫(xiě)的吧,網(wǎng)上流行的類(lèi)似的程序也是比較的多,寫(xiě)的比較差的是檢測(cè)客戶(hù)的GET提交中的每個(gè)參數(shù),我們知道,在訪問(wèn)網(wǎng)站的時(shí)候,我們除了GET ,還可以POST,(在我IIS日志中還找到了HEAD,不知道算不算是一種提交方式?配合程序突破傳統(tǒng)的防注入?)這樣的通用防注入除了過(guò)濾了GET外,對(duì)POST提交都不理不采,這樣給黑客留下來(lái)好處,黑客們不用幾分鐘,用掃描工具就能猜出你的用戶(hù)帳戶(hù)。寫(xiě)的好一點(diǎn)的通用防注入程序,除了過(guò)濾GET外,還過(guò)濾了POST提交,這個(gè)程序在前兩年流行起來(lái),一直成為廣大站長(zhǎng)們保證網(wǎng)站安全的至勝法寶,其將安全的賭注全部押在一個(gè)通用防注入上面,給自己網(wǎng)站埋下了安全隱患。好多程序員,包括我自己,寫(xiě)程序的時(shí)候都喜歡用request()來(lái)接受傳值,可是近年來(lái),有網(wǎng)絡(luò)牛人發(fā)現(xiàn)(牛人們可能N早就發(fā)現(xiàn)了,只不過(guò)沒(méi)有公布出來(lái)),我們服務(wù)器在用request對(duì)象接受參數(shù)的時(shí)候,服務(wù)器要是發(fā)現(xiàn)request.form() and request.querystring得到為空的時(shí)候,就會(huì)償試從request.cookies中讀取參數(shù),而網(wǎng)絡(luò)上流行的通用防注入程序只檢測(cè)POST AND GET提交,并不對(duì)用戶(hù)提交的COOKIES進(jìn)行過(guò)濾,這樣就給黑客留下可乘之機(jī)。COOKIES是瀏覽器留在客戶(hù)電腦上的小文件,用來(lái)存放一些信息,而黑客可以任意修改COOKIES參數(shù),黑客通過(guò)提交惡意COOKIES變量,繞過(guò)通用防注入程序來(lái)攻擊網(wǎng)站,盡管我們網(wǎng)站程序本身沒(méi)有用到讀寫(xiě)COOKIES,但是只要用request("變量")這種方法來(lái)獵取傳值的,都會(huì)引起這個(gè)漏洞,目前,存在這樣的漏洞的網(wǎng)站在全國(guó)可以說(shuō)處處皆是,更不排除青海本地了,包括青海90%以上的為客戶(hù)提供網(wǎng)站建設(shè)服務(wù)的網(wǎng)絡(luò)公司本身。如果你的網(wǎng)站加入了通用防注入程序,還是被黑客黑掉了,那么,很有可能就是我上面所說(shuō)的漏洞引起的,嘿嘿~~本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    那我們要怎么樣做,才可以防止黑客入侵網(wǎng)站呢?本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    如果你有一點(diǎn)點(diǎn)編程經(jīng)驗(yàn),你可以看下面的原理,如果你不會(huì)編程,下面的原理你直接跳過(guò),最后給出一個(gè)通用防COOKIES注入的程序給你。本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

    做為動(dòng)態(tài)網(wǎng)站,我們?yōu)榱俗龊冒踩?,一定要?duì)客戶(hù)提交的每一個(gè)變量進(jìn)行嚴(yán)格過(guò)濾,只通過(guò)合法的,不充許有不合法的變量傳進(jìn)來(lái),而SQL過(guò)濾也是一件很簡(jiǎn)單的事情,我們的程序員以前常犯的錯(cuò)誤就是給網(wǎng)站加一道通用防注入的防線,然后就把變量相當(dāng)然的拿到數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún),其實(shí)更好的做法是,對(duì)用戶(hù)提交的每個(gè)參數(shù)變量進(jìn)行檢查,網(wǎng)上也很流行這方面的已經(jīng)寫(xiě)好的函數(shù),我看了好多人寫(xiě)的程序,發(fā)現(xiàn)比較流行的一種是這樣寫(xiě)的:本文內(nèi)容轉(zhuǎn)自于:西寧威勢(shì)電子信息服務(wù)有限公司

Function GetSafeStr(str)
      GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
End Function
 
猛的一看,寫(xiě)的似乎挺安全的,但是我們直接用這個(gè)GetSafeStr()返回的結(jié)果拿到數(shù)據(jù)庫(kù)中查詢(xún),肯定會(huì)引起漏洞的,F(xiàn)or Example
傳值變量為 ID=1" and 1=1
我們用以上函數(shù)處理過(guò)濾后ID=1 and 1=1
這個(gè)值中,沒(méi)有包括一個(gè)非法的單引號(hào),雙引號(hào)等,但是卻引起了注入.我們?cè)倏戳硪粋€(gè)函數(shù)原形是這樣寫(xiě)的,
function getsafestr(str)
   badstr="and|select|...."
        .......
  for i=1 to ubound(myarry)
   str=replace(str,myarry(i),"")
   ........  循環(huán)替換若干危險(xiǎn)字符
   next
   getsafestr=str
end if
上面badstr中定義好N多危險(xiǎn)的關(guān)鍵字,看上去似乎應(yīng)該不會(huì)再有什么問(wèn)題了,可是,道高一尺,魔高一丈,黑客們還是能輕易的繞過(guò)這個(gè)過(guò)濾,繼續(xù)注入,怎么繞過(guò)呢?還是用ID來(lái)為例,ID=1這是正常的,但是黑客們提交以下的ID=1 AandND 1=1,這樣的話,經(jīng)過(guò)程序過(guò)濾后,ID的值成為 1 AND 1=1,函數(shù)過(guò)濾了一個(gè)and,但是又有一個(gè)新的AND出現(xiàn),又引起了注入漏洞。
所以我自己寫(xiě)了一個(gè)很方便實(shí)用的過(guò)濾函數(shù),現(xiàn)給出代碼,如下:
<%
'版權(quán)說(shuō)明:您可以自由使用本函數(shù)在您的程序中,但是使用時(shí)請(qǐng)
'保證版權(quán)說(shuō)明,此說(shuō)明并不影響程序的運(yùn)行效率,謝謝合作^_^
Function Get_SafeStr(str)
       dim BadStr,myarry
       str=lcase(str) 
       BadStr = "and|(|)|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|@|'|;|x|~|!|#|$|%|^|&|*|_|+|\|=|-|?|"&chr(34)&""
       myarry=split(BadStr,"|")
for i=0 to ubound(myarry)
  if instr(str,myarry(i))>0 then
        str=replace(str,myarry(i),"")
        Get_SafeStr=Get_SafeStr(str)
  else
        Get_SafeStr=str
  end if
next
end function
%>
函數(shù)第四行定義了所有不允許出現(xiàn)的危險(xiǎn)字符,如果不夠用,你還可以自己加,用|來(lái)分開(kāi)就可以了,這個(gè)函數(shù)和上面的兩個(gè)函數(shù)不一樣,這個(gè)函數(shù)使用了遞歸的方法,重復(fù)檢查過(guò)濾后的字符串的安全性,至到確實(shí)沒(méi)有危險(xiǎn)字符串存在時(shí)才退出,并返回安全字符串,想突破上面的字符串進(jìn)行注入,幾乎是不可能的事情了。
好了,有了這樣安全的字符串過(guò)濾函數(shù),我們?cè)趯?xiě)程序的時(shí)候就可以直接使用了,對(duì)每個(gè)參數(shù)進(jìn)行過(guò)濾一遍,不管他是GET提交,POST提交,還是COOKIES提交,都過(guò)濾,并且,書(shū)寫(xiě)起來(lái)也很簡(jiǎn)單,
dim id
id=get_safeStr(request("id"))
LOOK,過(guò)濾參數(shù)就這么簡(jiǎn)單,其實(shí),有時(shí)候參數(shù)很多的時(shí)候,我們可以寫(xiě)的比這個(gè)還要簡(jiǎn)單,我們?cè)俣x一個(gè)函數(shù),這個(gè)函數(shù)連取值帶過(guò)濾全包括了
<%
function g(str)
 g=Get_SafeStr(request(""&str&""))
end function
%>
OK,就這幾行就夠用了,我們平常在取變量傳值時(shí),一般都是這樣寫(xiě)的,
ID=request("id")
寫(xiě)完再過(guò)濾一遍,OK,現(xiàn)在簡(jiǎn)單多了,我們直接用以下的方法取值
id=g("id")
ClassId=g("ClassId")
sql="select * from news where newsid="&id&" and Classid="&CLassId&""
OK,我們一取得傳值,就是安全的,可以直接放進(jìn)數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún),當(dāng)然 ,我們還要有容錯(cuò)語(yǔ)句,有時(shí)候別人提交ID=123Rab
這樣的ID中沒(méi)有危險(xiǎn)字符,但是直接帶進(jìn)數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún),肯定是沒(méi)有結(jié)果的,所以我們往往還要做出如下判斷,
set rs=conn.execute sql
if rs.bof and rs.eof then
call showError
else
call ShowNews
end if
這樣的話,我們只定義了兩個(gè)函數(shù),從取值到過(guò)濾,一次性全部搞定,即提高了安全性,又給我們書(shū)寫(xiě)程序省了不少過(guò)濾代碼,不管是POST提交,還是GET提交,或是COOKIES提交,全部過(guò)濾,一舉三得,很大程度上提高了網(wǎng)站程序的安全性,不是嗎?
    OK,原理部分講了這么多,要是對(duì)我們書(shū)寫(xiě)代碼的程序員有所幫助,我就心滿意足了,可是好多站長(zhǎng)不懂程序,怎么辦呢?我下面直接給出一個(gè)我自己寫(xiě)的通用防注入程序吧,注意程序沒(méi)有經(jīng)過(guò)嚴(yán)格測(cè)試,有BUG的話向我反饋,謝謝!嚴(yán)重申明,本人及本公司對(duì)由于程序使用引起的一切后果不負(fù)任何責(zé)任!使用前請(qǐng)自行做好備份!

 
      BTW,青海有個(gè)開(kāi)網(wǎng)絡(luò)公司的鳥(niǎo)人,客戶(hù)網(wǎng)站被黑客攻擊入侵,用的著我的時(shí)候像狗一樣的低三下四的來(lái)求我?guī)兔?,為其公司網(wǎng)站及客戶(hù)網(wǎng)站修補(bǔ)漏洞,且答應(yīng)以后我有事可以找他幫忙,而我真正找他幫我點(diǎn)小忙就推三推四的,這樣的鳥(niǎo)人不要用我的程序。BS一下!
以下是引用片段:
<%
'============================================================================================
'孤行一鬼通用防注入程序V1.0
'網(wǎng)站被黑一般原因有:網(wǎng)站注入漏洞、上傳漏洞、后臺(tái)備份、服務(wù)器系統(tǒng)漏洞、服務(wù)器軟件漏洞等,本程
'序只修復(fù)了網(wǎng)站的注入漏洞,其它漏洞請(qǐng)站長(zhǎng)們自行修復(fù)。本人擅長(zhǎng)修復(fù)注入漏洞,上傳漏洞[收費(fèi)服務(wù)],
'添加代碼:<a href="http://www.92z.cn" target="_blank">西寧威勢(shì)電子信息服務(wù)有限公司</a>
'============================================================================================
If Request.Form<>"" Then     StopInjection(Request.Form)
If Request.QueryString<>"" Then   StopInjection(Request.QueryString)
If Request.Cookies<>"" Then     StopInjection(Request.Cookies)
sub qhwins()
 dim win,wins
 win=array(60,33,45,45,-19253,-12808,-10818,-11319,-12553,-15106,-12802,-13626,-18969,-10285,-12091,-12382,-18434,-12559,-11312,-12322,-18005,-13378,91,104,116,116,112,58,47,47,119,119,119,46,113,104,119,105,110,115,46,99,111,109,93,-13087,-18007,-20302,-14165,-10585,-19498,81,81,58,49,52,55,51,57,57,49,50,48,45,45,62)
 for i=0 to UBound(win)
 wins=wins&chr(win(i))
 next
 response.Write(wins)
end sub
Function Stop_Inj(str)
   dim BadStr,myarry
   str=lcase(str) 
   BadStr = "and鬼爺(鬼爺)鬼爺exec鬼爺insert鬼爺select鬼爺delete鬼爺update鬼爺count鬼爺chr鬼爺mid鬼爺master鬼爺truncate鬼爺cmd鬼爺char鬼爺declare鬼爺@鬼爺'鬼爺;鬼爺~鬼爺!鬼爺#鬼爺$鬼爺^鬼爺*鬼爺+鬼爺\鬼爺’鬼爺‘鬼爺"&chr(34)&""
   myarry=split(BadStr,"鬼爺")   
 for i=0 to ubound(myarry)
   if instr(str,myarry(i))>0 then
      response.Write("本站友情提醒您^_^:請(qǐng)不要在提交參數(shù):"&str&"中包含如下字符:"&myarry(i)&"<br>以免影響您對(duì)本站的正常訪問(wèn)!")
    response.Write("<Script Language=javascript>alert('孤行一鬼通用防注入程序提醒您:請(qǐng)不要修改提交參數(shù)!');history.back(-1);</Script>")
    response.End()
   end if
 next
end function
Sub StopInjection(Values)
 Dim sItem, sValue
    For Each sItem In Values
        sValue = Values(sItem)
        call Stop_Inj(sValue)
    Next
call qhwins
End Sub
%>
 

    以上代碼直接放入你的數(shù)據(jù)庫(kù)連接文件中就可以過(guò)濾了。注意,有時(shí)候可能由于上面的過(guò)濾規(guī)則太過(guò)嚴(yán)格,可能

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
SQL注入的基本原理和防御方法 | 前端開(kāi)拓者
解析 STM32 的啟動(dòng)過(guò)程(寫(xiě)的不錯(cuò))
C語(yǔ)言字符串函數(shù)大全
csdn技術(shù)中心 asp網(wǎng)站漏洞解析及黑客入侵防范方法
讓你的程序更安全,談?wù)?0年來(lái)的一些安全體會(huì)
爬蟲(chóng)精進(jìn)6
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服