最近虽说到了考试周了,但还是忍不住会编一些程序,最近再看《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页。