阅读664 返回首页    go 阿里云 go 技术社区[云栖]


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

  上一篇:go 即将到来的数据中心僵尸末日,谁能成为最后幸存者?
  下一篇:go 神奇的代码——JavaScript在浏览器中的妙用