XSS 常用防御方式

1. HTML

1.1 head 设置charset = UTF-8

  • 防止IE下自动使用 UTF7

1.2 content-type JSON时 需要明确设置

  • 防止给JSON中注入js

2 HTTP响应头

2.1 X-XSS-PROTECTION: 1;mode=block

  • 开启浏览器XSS过滤器

2.2 X-Frame-Options:deny

  • 响应头会被禁止加载到frame中

2.3 X-Content-Type-Options:nosniff

  • 禁止浏览器做MIME嗅探

2.4 [重要] Content-Security-Policy: default-src:'self'

  • 只允许本origin的资源
    • default-src = 各种资源
    • script -src , img -src 脚本资源, 图片资源

可以设置的值除了 self 之外 script-src还可以设置 unsafe-inline 但一定要跟 nounce

2.5 Set-Cookie:key = value; HttpOnly

  • 设置Cookie成为只读

2.6 Content-Type:type/subtype;charset=utf-8

3 服务端语言 用各自的转义库去encode和decode

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,409评论 19 139
  • 本博客转自:「作者:若愚链接:https://zhuanlan.zhihu.com/p/22361337来源:知乎...
    韩宝亿阅读 7,739评论 0 3
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 7,449评论 0 25
  • HTML HTML5新增加的内容或者APIAPI层canvas: 用来写游戏还是很不错的,推荐开源游戏框架:pix...
    FConfidence阅读 3,424评论 0 3
  • 要加“m”说明是MB,否则就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms8...
    dadong0505阅读 10,343评论 0 53