網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 近來,網絡上的SQL Injection 漏洞利用攻擊,JS腳本,HTML腳本攻擊似乎逾演逾烈。陸續的很多站點都被此類攻擊所困擾,并非像主機漏洞那樣可以當即修復,來自于WEB的攻擊方式使我們在防范或者是修復上都帶來了很大的不便。HOOO…… 一個站長最大的痛苦莫過于此。自己的密碼如何如何強壯卻始終被攻擊者得到,但如何才能做到真正意義上的安全呢?第一,別把密碼和你的生活聯系起來;第二,Supermaster的PWD最好只有你自己知道;第三,絕對要完善好你的網站程序。然而怎樣才能完善,這將是我們此文的最終目的。 安全防護,如何做到安全防護?想要防護就要知道對方是如何進行攻擊。有很多文章都在寫如何攻下某站點,其實其攻擊的途徑也不過是以下幾種: 1. 簡單的腳本攻擊 此類攻擊應該屬于無聊搗亂吧。比如****:alert(); </table>等等,由于程序上過濾的不嚴密,使攻擊者既得不到什么可用的,但又使的他可以進行搗亂的目的。以目前很多站點的免費服務,或者是自身站點的程序上也是有過濾不嚴密的問題。 2. 危險的腳本攻擊 這類腳本攻擊已經過度到可以竊取管理員或者是其他用戶信息的程度上了。比如大家都知道的cookies竊取,利用腳本對客戶端進行本地的寫操作等等。 3. Sql Injection 漏洞攻擊 可以說,這個攻擊方式是從動網論壇和BBSXP開始的。利用SQL特殊字符過濾的不嚴密,而對數據庫進行跨表查詢的攻擊。比如: http://127.0.0.1/forum/showuser.asp?id=999 and 1=1 http://127.0.0.1/forum/showuser.asp?id=999 and 1=2 http://127.0.0.1/forum/showuser.asp?id=999 and 0<>(select count(*) from admin) http://127.0.0.1/forum/showuser.asp?id=999’; declare @a sysname set @a='xp_'+ 'cmdshell' exec @a 'dir c:\'---&aid=9 得到了管理員的密碼也就意味著已經控制的整站,雖然不一定能得到主機的權限,但也為這一步做了很大的鋪墊。類似的SQL Injection攻擊的方式方法很多,對不同的文件過濾不嚴密所采取的查詢方式也不同。所以說想做好一個完整的字符過濾程序不下一凡功夫是不可能的。 4. 遠程注入攻擊 某站點的所謂的過濾只是在提交表格頁上進行簡單的JS過濾。對于一般的用戶來說,你大可不必防范;對早有預謀的攻擊者來說,這樣的過濾似乎根本沒作用。我們常說的POST攻擊就是其中一例。通過遠程提交非法的信息以達到攻擊目的。 通過上面的攻擊方法的介紹,我們大致的了解了攻擊者的攻擊途徑,下面我們就開始重點的介紹,如何有效的防范腳本攻擊! 讓我們還是從最簡單的開始: l 防范腳本攻擊 JS腳本 和HTML腳本攻擊的防范其實很簡單:server.HTMLEncode(Str)完事。當然你還不要大叫,怎么可能?你讓我把全站類似<%=uid%>都加過濾我還不累死?為了方便的過濾,我們只需要將HTML腳本和JS腳本中的幾個關鍵字符過濾掉就可以了:程序體(1)如下: ‘以下是過濾函數 <% function CHK(fqyString) fqyString = replace(fqyString, ">", ">") fqyString = replace(fqyString, "<", "<") fqyString = replace(fqyString, "&#", "&") fqyString = Replace(fqyString, CHR(32), " ") fqyString = Replace(fqyString, CHR(9), " ") fqyString = Replace(fqyString, CHR(34), """) fqyString = Replace(fqyString, CHR(39), "'") fqyString = Replace(fqyString, CHR(13), "") fqyString = Replace(fqyString, CHR(10) & CHR(10), "</P><P> ") fqyString = Replace(fqyString, CHR(10), "<BR> ") CHK = fqyString end function %> ‘以下是應用實例 <%=CHK(Username)%> Username=CHK(replace(request(“username”),”’”,””)) 使用Include把函數寫在公有頁面上,這樣效率是最好的。 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!