前端安全以及如何防范详细介绍


本文摘自PHP中文网,作者V,侵删。

随着互联网的发达,各种WEB应用也变得越来越复杂,满足了用户的各种需求,但是随之而来的就是各种网络安全的问题。作为前端开发行业的我们也逃不开这个问题。所以今天我就简单聊一聊WEB前端安全以及如何防范。

首先前端攻击都有哪些形式,我们该如何防范?

一、XSS攻击

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植 入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻 击者利用XSS漏洞旁路掉访问控制――例如同源策略(same origin policy)。这种类型 的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。

XSS攻击的危害包括:

  1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

  2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

  3、盗窃企业重要的具有商业价值的资料

  4、非法转账

  5、强制发送电子邮件

  6、网站挂马

  7、控制受害者机器向其它网站发起攻击

XSS攻击的具体表现:

  1、JavaScript代码注入

  下面是代码的页面:

u=4148538070,4135043303&fm=173&s=08AA7D320DCE44C85E7520DB0000C0B1&w=355&h=211&img.JPEG

这段代码的作用是把第一个输入框的字符串,输出到第二个输入框,我们输入1,那么第二个input里的value值就是1,下面是页面的截图和源代码的截图(这里我输入下面的代码来测试)

1

<SCRIPT>alert('xss')</SCRIPT>

u=3900495474,2629599668&fm=173&s=0AA67D228DCC6CC85E7540DF0000C0B1&w=343&h=199&img.JPEG

明显的可以看到,并没有弹出对话框,大家可能会疑惑为什么没有弹窗呢,看看源代码

u=1982139739,1200410826&fm=173&s=4012E03B9FC84549585D31DE000080B0&w=450&h=210&img.JPEG

我们看到我们输入的字符串被输出到第15行input标签里的value属性里面,被当成value里的值来显现出来,所以并没有弹窗,这时候我们该怎么办呢?聪明的人已经发现了可以在

1

<SCRIPT>alert('xss')</SCRIPT>

  前面加个">来闭合input标签。所以应该得到的结果为

u=2700107574,2428845689&fm=173&s=11B2C832331A77C8026DC0C6000030B3&w=450&h=352&img.JPEG

成功弹窗了,我们在看看这时的页面

u=3234963914,2519053351&fm=173&s=5BA83D629DDE5CC84E54B1DF0000C0B1&w=396&h=231&img.JPEG

看到后面有第二个input输入框后面跟有">字符串,为什么会这样呢,我们来看看源代码

u=386221432,3026262404&fm=173&s=4112E43B9F484549505D11DE0000C0B0&w=450&h=210&img.JPEG

解决办法:目前来讲,最简单的办法防治办法,还是将前端输出数据都进行转义最为稳妥,虽然显示出来是有script标签的,但是实际上,script标签的左右尖括号(><),均被转义为html字符实体,所以,便不会被当做标签来解析的,但是实际显示的时候,这两个尖括号,还是可以正常展示的。

2、append的利用

  上一小节我们防住了script标签的左右尖括号,但聪明的黑客们还是想出了好办法去破解,我们知道,直接给innerHTML赋值一段js,是无法被执行的。比如,

1

<br>

  但是,jQuery的append可以做到,究其原因,就是因为jquery会在将append元素变为fragment的时候,找到其中的script标签,再使用eval执行一遍。jquery的append使用的方式也是innerHTML。而innerHTML是会将unicode码转换为字符实体的。

  利用这两种知识结合,我们可以得出,网站使用append进行dom操作,如果是append我们可以决定的字段,那么我们可以将左右尖括号,使用unicode码伪装起来,就像这样--"\u003cscript\u003ealert('xss');"。接下来转义的时候,伪装成\u003的<会被漏掉,append的时候,则会被重新调用。虽然进行了转义,注入的代码还是会再次被执行

3、img标签的再次利用

  img标签,在加载图片失败的时候,会调用该元素上的onerror事件。我们正可以利用这种方式来进行攻击。

1.JPEG

但是,如果这张图片的地址我们换种写法呢?

阅读剩余部分

相关阅读 >>

前端安全以及如何防范详细介绍

实例分析:html5前端性能的测试(图文)

更多相关阅读请进入《安全》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...