最近雖說到了考試周了,但還是忍不住會編一些程序,最近再看《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" οnsubmit="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.οnsubmit=function() {return true;}; void(0)
更詳細的介紹參照《JavaScript王者歸來》一書的第21頁。