如何繞過客戶端JS驗證(圖文講解)


 

我記得在剛接觸ASP.NET編程的時候,微軟幫助文檔就特別強調,不能相信客戶端提交的任何數據,我們都要假象客戶端提交的數據都是不安全的,所以我們要對客戶端提交的數據進行驗證,所以.net里面給我們提供了驗證控件,很方便,但是你在看這些控件的使用幫助的時候,微軟肯定一樣會強調,我們在前台驗證后,還需要服務端驗證,為什么呢?估計很多新手會問了,.net里面的驗證控件不是服務器控件嗎?驗證控件確實是服務器端控件,但是你要知道,這些服務器控件僅僅是把客戶端驗證的功能封裝了而已,所以那些驗證控件,其實還是客服端驗證,而所有客戶端驗證,都不是真正的最安全的驗證方法,我們必須要要進行服務端驗證。為什么呢,請接着繼續看。

相信作為程序員,都會按照火狐瀏覽器,如果是經常進行web前端開發的話,肯定離不開火狐瀏覽器的。

安裝好FireBug插件

然后,用快捷鍵F12,就會彈出FireBug窗口

我寫了一個簡單的注冊登錄的功能,用了.net服務器驗證控件,對輸入進行驗證,但是沒有在服務端進行驗證

 

首先,我們不填寫數據,提交注冊按鈕,我們知道,肯定提交不了的,如上圖

 

然后按着上面步驟操作,把紅框里的代碼:

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(“Button1″, “”, true, “1″, “”, false, false))

刪除掉,然后點擊提交按鈕,你會發現,數據竟然提交成功了,為什么呢?

這就是我上面說的,其實.net的服務器驗證控件,其實就是客戶端驗證,沒有進行服務端驗證的原因

當我們刪除驗證事件的時候,自然就不能進行驗證了,也就是我要說的主題,繞過了客戶端JS驗證

 

后面我再用同樣的方法,去掉登錄的客戶端驗證代碼,什么都不輸入,進行登錄,結果是登錄成功

互聯網上存在很多網站,不管是.net開發的,還是PHP,還是JAVA,如果不進行服務端驗證,按這個方法操作,都能繞過客戶端驗證

 

其實現在我們很多沒有安全意識的程序員,或者新手,都會忽略掉服務端驗證,原因之一是,他們完全沒有這個意識,即不懂。

再者是有些程序員抱着僥幸的心理,或者說是偷懶,以為客戶端驗證了,服務端不驗證,沒事,一般人察覺不出來,可正是他們這種僥幸的心理,從而讓他們的網站存在安全隱患。

除了利用火狐瀏覽器能夠繞過客戶端JS驗證,其實在黑客手里還有很多更加專業的工具,所以對數據進行客戶端和服務端驗證,非常有必要,也非常重要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM