美文网首页
Web安全之XSS

Web安全之XSS

作者: sarah_wqq | 来源:发表于2019-01-22 20:36 被阅读0次

XSS :cross site script 跨站脚本攻击
比如在input框中输入script代码

<script>alert('hehehe')</script>

1.危害

获取页面数据、获取Cookie、劫持前端逻辑、发送请求、偷取用户资料...

2.攻击方法

url中注入脚本
查询框注入脚本
存储型注入,通过form表带提交到数据库中

3.要防护的地方

动态生成的HTML节点、HTML属性(如src),依赖与用户输入的JS代码,富文本等


富文本例子.png

4.防御方法

1)对HTML内容和属性实体进行转义escape

 < --------> &lt;
 > --------> &gt;
 " --------> &quto; 或&#34;
 '  --------> 或&#39;

&符号可转可不转,空格一般不做转义,但是要求html中属性值必须加上引号

2)对JS做转义

加 \ 或者转为JSON

str = str.replace(/\\/g, '\\\\');
str = str.replace(/"/g, '\\"');
str = str.replace(/'/g, "\\'");
//or
str = JSON.stringify(str);

3)对于富文本,黑名单方法过滤指定标签(如<script>),或白名单方法只支持指定标签

html = html.replace(/<\s*\/?script\s*>/g, '');

由于XSS攻击方式变种非常多,所以推荐白名单的方式防御,可用cheerio库

4)浏览器内置防御机制

防御效果有限,只对url参数中的script有效

5.CSP

CSP: Content security policy 内容安全策略
用于指定哪些内容可执行,通过CSP所约束的的规责指定可信的内容来源。

在HTTP头中加入属性Content-Security-Policy,并写入常用的指令:

  • default-src 默认策略,可以应用于js文件/图片/css/ajax请求等所有访问
  • script-src 定义js文件的过滤策略
  • style-src 定义css文件的过滤策略
  • object-src 定义页面插件的过滤策略,如 <object>, <embed> 或者<applet>等元素
  • 还有img-src、connect-src、font-src、media-src、frame-src等
  • sandbox 沙盒模式,会阻止页面弹窗/js执行等

并在服务器端进行相应的配置

  • Apache,在VirtualHost的httpd.conf文件或者.htaccess文件中加入以下代码
Header set Content-Security-Policy "default-src 'self';"
  • Nginx,在 server {}对象块中添加如下代码
add_header Content-Security-Policy "default-src 'self';";
  • IIS, 在web.config中添加

6.PHP中的XSS防御

1.strip_tags():移除所有html标签,只留下内容
2.htmlspecialchars($content, ENT_NOQUOTES):对& < >等特殊字符做转义
3.使用各种第三方库,如HTMLPurifier
4.用php Document类解析Dom节点,根据白名单过滤
5.CSP

相关文章

  • XSS攻击与防御

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻防

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻击与防御小结

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • xss攻击

    前端安全之XSS攻击 XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重...

  • Web安全之XSS

    什么是XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading St...

  • Web安全之XSS

    XSS :cross site script 跨站脚本攻击比如在input框中输入script代码 1.危害 获取...

  • XSS 攻击防守

    最常见的攻击xss 什么是xss? 为什么是xss? 开放式Web应用程序安全项目(Open Web Applic...

  • web安全之XSS攻击

    1. 什么是XSS? CSRF(Cross-site request forgery),中文名称:跨站请求伪造。将...

  • Web安全 之 XSS攻击

    本文演示 Demo 的代码地址: XSS XSS简介 跨站脚本攻击,英文全称是 Cross Site Script...

  • web安全之XSS,CSRF

    XSS - Cross-site scripting xss其实就是html的注入问题,攻击者的输入没有经过严格的...

网友评论

      本文标题:Web安全之XSS

      本文链接:https://www.haomeiwen.com/subject/hzirjqtx.html