繞開JS驗證的方法彙總

1.應用場景

用於請求接口測試.[比如後端接口安全測試]

2.學習/操作

前言:

服務器端驗證是必要的.

 

方法彙總

方法一

將頁面保存到自己機器上, 然後把腳本檢查的地方去掉,最後在自己機器上運行那個頁面即可.

 

測試結果:

TBD

方法二 //即 使驗證的js腳本不生效.

該方式與方法一類似一樣, 只是將引入js的語句刪掉, 或則將引入的js後綴名更換成任意的名字, 就OK.

方法三

在瀏覽器地址欄中直接輸入請求URL及參數,發送get請求, 即可.

 

但如果是post請求,

同時post主體請求參數在瀏覽器中不好修改,[或者不想修改]

推薦參考:

https://blog.csdn.net/william_n/article/details/104995351  // 2. 調試 --- 發送請求[xhr]

方法四

在瀏覽器設置中,設置禁用腳本

總結:

繞開前端的驗證的方式有很多種,因此在系統中如只加入前端的有效驗證,而忽略服務器端驗證,是一件很可怕的事情;

但如果只有服務器端驗證就那麼服務器端的負擔會加重,因爲前端驗證可以保證大部分請求是有效,友善的;

所以我們應該在自己的系統中將其這兩種驗證方式結合起來使用.

3.問題/補充

1.如果客戶端禁用了 javascript 那如何進行驗證?

服務端是必須進行驗證的,這是最後一道防線,馬虎不得。

舉個例子:如果服務端不驗證,那麼完全可以在任何連接互聯網的地方重寫一個沒有JS驗證的表單,然後提交給你網站的程序,後果可想而知,幾乎就是自由出入.

 

客戶端的JS驗證其實質是提升用戶體驗,可以讓用戶提前知道填寫資料的對錯,否則等到一提交,再返回個錯誤,把原來填的都清空了,那就抓狂了

根據Javascript優雅退化的原則,頁面要在禁用JS的情況下仍然能夠正常使用。雖然可能用戶體驗差了點,少了某些效果,但基本的功能都還是可以實現的.

所以,不要過分地依賴JS,服務端該驗證的還得驗證.

 

寫服務器程序,給你一個提醒: 不要相信任何客戶端數據,

JS只是一個輔助驗證, 是爲了減輕不必要的提交, 比如提交大堆數據過去, 發現有一個數據不合法, 這樣豈不是浪費服務器資源?!

 

但服務器端的是少不了這些驗證的, 因爲提交者可能不是瀏覽器,即一些模擬發送工具.

 

2.服務器是否能區分請求是來自於瀏覽器還是模擬請求工具?

TBD

 

4.參考

http://www.360doc.com/content/13/0925/21/13812121_317077519.shtml  //介紹幾個繞開JS驗證的方法(服務器端驗證是必要的)

https://blog.csdn.net/william_n/article/details/104995351  // 瀏覽器 個人實踐/理解

後續補充

...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章