专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
OSC开源社区  ·  打磨了22年的重量级工业开源软件——Free ... ·  5 天前  
程序员小灰  ·  百度进军娱乐圈?这次破圈的是百度网盘... ·  5 天前  
程序员的那些事  ·  趣图:被 VSCode 无情嘲讽了 ·  1 周前  
51好读  ›  专栏  ›  程序员大咖

前端安全之XSS攻击

程序员大咖  · 公众号  · 程序员  · 2017-05-16 19:22

正文

来自: 海角在眼前 - 博客园

链接:www.cnblogs.com/lovesong/p/5199623.html


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


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

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

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


Reflected XSS


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


例子:


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

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

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

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

http://www.amazon.cn/search?name=

PS:这个地址当然是没效的,只是举例子而已。


结论:


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


开发安全措施:


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

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


例如:


标签:

<script>alert('handsome boy')script>span>

转义