为什么80%的码农都做不了架构师?>>>   

虽然现在IE10和chrome可以自动过滤掉

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

但是

<!DOCTYPE html><head> <title>Oh!NO!</title> <script type="text/javascript">
//<![CDATA[ var xss = "</script><script>alert('XSS');</script>";
//]]>
</script>
</head>
<body> <p>弹出了XSS框?那就赶紧补漏洞去吧!</p>
</body>
</html>
<!DOCTYPE html><head> <title>Oh!NO!</title> <script type="text/javascript"> var xss = "</script><script>alert('XSS');</script>"; </script>
</head>
<body> <p>弹出了XSS框?那就赶紧补漏洞去吧!</p>
</body>
</html>

防御方法:

1.HttpOnly

httpOnly标签至今已经逐渐成为一个标准,浏览器禁止JS访问带有HttpOnly的Cookie,HttpOnly可以选择性的加载任何一个Cookie值上

response.setHeader("Set-Cookie","cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");

2、输入检查

处理富文本:采用XSS filter

java:https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

php:http://htmlpurifier.org/

3、输出检查

a.安全的编码函数:
输出对象为html时,采用HtmlEncode,HtmlEncode不是专用名词,他只是一种函数实现。他的作用是将字符转换成HTMLEntities,对应的标准是ISO-8859-1
至少需要转换以下字符:

& --> &amp;
< -->&lt;
> --> &gt;
" --> &quot;
' --> '
/ --> /

4.防御DOM Based XSS:复合的XSS防御
从$var输出到<script>的时候需要做JavascriptEncode,在输出到html的时候,如果是输出到事件或者脚本,再做一次JavascriptEncode,如果输出到html,做HtmlEncode,即,输出点即为防御点。

cheatsheet for DOM Based XSS:http://code.google.com/p/domxsswiki/

JavascriptEncode:https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API

转载于:https://my.oschina.net/tdoly/blog/136632

[Security]XSS一直是个棘手的问题相关推荐

  1. WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss).

    angular4中我用上面的绑定方式去渲染数据的 我本身要渲染的数据结构如下 之后就给我提示WARNING: sanitizing HTML stripped some content (see ht ...

  2. SpringBoot 安全漏洞之XSS注入攻击(jsoup版本)

    1. 跨站点脚本编制   风险:可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务.   原因:未对用户输入正确执行危险字符清 ...

  3. 深入理解XSS攻击与防御

    深入理解XSS攻击与防御 What is XSS XSS攻击的类型 XSS攻击原理 XSS攻击危害 XSS攻击方法 How to defense XSS 防御原则:永远不要相信用户的输入. 防御措施 ...

  4. ubuntu安装ffmpeg_安装 Jellyfin 开始肥宅生活

    先放两张效果图 完美的宅家生活 不就是这样嘛 在 Windows 系统上安装 直接去 官网( https://jellyfin.org/ ) 下载安装包就好,我才懒得讲怎么装( Ubuntu/Debi ...

  5. 干货|各种WAF绕过手法学习

    0X00    Fuzz/爆破 fuzz字典 1.Seclists/Fuzzing https://github.com/danielmiessler/SecLists/tree/master/Fuz ...

  6. ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url

    ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url WARNING: sanitizing uns ...

  7. Angular:解决innerHTML绑定页面内容,sanitizing HTML stripped some content警告处理和富文本背景色样式无法正常显示的问题

    背景:在系统中使用quill富文本编辑器,使用的版本是ngx-quill@4.0.0,具体使用方法参见我的另一篇博客 Angular:ngx-quill富文本编辑器的使用(地址:https://blo ...

  8. Angular4中使用DomSanitizer

    作用 DomSanitizer有助于防止跨站点脚本安全漏洞(XSS),通过清除值以便在不同的DOM上下文中安全使用. 为什么会需要使用DomSanitizer Angular4中默认将所有输入值视为不 ...

  9. 【项目实战】Spring Cloud Gateway入门介绍 - 网关过滤器工厂

    一.全局过滤器GlobalFilter 全局过滤器是针对于网关而言通用的功能组件实现,采用全局来实现. 以下是两个如何全局过滤器GlobalFilter的实例 1.1 实例1:定义ForwardAut ...

最新文章

  1. if(p == NULL)和 if(NULL == p)区别
  2. neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead
  3. Tar打包、压缩与解压缩到指定目录的方法
  4. 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(一)
  5. JAVA获取项目工程下的文件
  6. 【JFreeChart】JFreeChart—输出时序图
  7. 《大数据》2015年第2期“专题”——关于大数据交易核心法律问题 —— 数据所有权的探讨及建议...
  8. 在Vs.net中集成 NDoc生成的 Html Help 2帮助文档
  9. 我的世界java版地牢种子_我的世界手机版地牢种子代码汇总
  10. .desktop 桌面快捷_Ubuntu 桌面手动添加应用快捷方式
  11. c语言及程序设计基础 pdf,《C语言程序设计基础》.pdf
  12. 2022,云上开发的新纪元
  13. 不知道考研各科课程那个老师的课好?怎么选择安排?在哪找课程课本资料?看这里
  14. showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!
  15. Android UI 切图命名规范、标注规范及单位描述
  16. 介绍一个产品的思维导图_产品运营怎么使用思维导图?四个方面阐释思维导图的运用...
  17. u9搜索引擎推送破解版
  18. vue中通过定时器设置倒计时,5秒倒计时
  19. 织梦PHP版本怎么更新,织梦DedeCMS系统如何打补丁升级
  20. AxiomSL任命David Weber为首席运营官兼首席财务官以应对快速的全球增长

热门文章

  1. 解决手机訪问站点时总体相对屏幕缩小问题?(已解决)
  2. 集中式管理助推服装企业腾飞
  3. drbd配置文件_Linux数据安全工具:数据镜像软件DRBD的安装与配置
  4. Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)
  5. Java集合(一)、什么是Java集合?
  6. 第十七单元 Samba服务
  7. 运维自动化------ansible搭建
  8. Spark2.X环境准备、编译部署及运行
  9. Xshell 命令后台执行
  10. php integer