JavaScript數據安全實戰!攻擊與防範
最近雖說到了考試周了,但還是忍不住會編一些程序,最近再看《JavaScript王者歸來》一書,以前我就知道JavaScript這門語言十分的神奇,雖說直接用jquery來做應用比較簡單,但是想完完整整了解這個語言的特性我還是差的太遠了,不廢話了,推薦大家都看看這本書。
利用JavaScript的常見攻擊有以下幾種:
1.偽造表單提交目的地,從而竊取數據
解釋:HTML表單的提交由form的action屬性決定,而JavaScript具備從客戶端修改form的action能力
有一個簡單的頁麵有如下一個表單:
<form actioni="a.action" name="myForm"> <input type="text" name="data" value="aa"/> <input type="submit"/> </form>破解方法:
在瀏覽器地址欄中輸入:
JavaScript:document.myForm.action="b.action";void(0);這樣數據就會被提交到b.action中而不是a.action
2.偽造數據,繞過合法性驗證
解釋:很多Web應用在,在前台用javascript來控製數據的合法性,但是這種合法性是很容易被繞過的
有如下一個表單:
<form name="myForm" action="a.html" onsubmit="return !/\s+/.test(document.myForm.textData.value) && /\d+/.test(document.myForm.numData.value) || alert('請輸入正確格式') || false;"> <input name="textData" type="text"/> <input name="numData" type="text"/> <input type="submit"> </form>其中textData必須為字符numData必須為數學,否則無法提交
破解方法:
在瀏覽器地址欄中輸入:
JavaScript:document.myForm.onsubmit=function() {return true;}; void(0)
更詳細的介紹參照《JavaScript王者歸來》一書的第21頁。
最後更新:2017-04-03 18:52:16