为什么 CSP 可以抵御 XSS 攻击?

findvt
  • 64

看 sf 上安全问题挺少的。。初学者,看了些资料发现 CSP 好像是从安全策略上(从协议层把一些存在安全隐患的用法默认拒绝)就做了改变,想知道 CSP 抵御 XSS 具体的防护是怎么做的。

回复
阅读 4.3k
3 个回答

一部分 Web 安全问题是因为早期 Web 标准的设计漏洞导致的。举个例子,在 RFC 6265 中,是不区分来自同一个域名的不同端口的 Cookie 的,这就给了一些攻击行为可乘之机。

于是浏览器根据常见的攻击行为,会有一些非标准的防护行为,但毕竟这些行为属于违背标准的,于是浏览器为网站开发者提供了一个方式来告诉浏览器需要哪些安全相关的防护行为,这就是 CSP.

Chrome 开发者资源:https://developer.chrome.com/extensions/contentSecurityPolicy
标准:https://w3c.github.io/webappsec/specs/content-security-policy/

简单解释一下,就是只运行指定的脚本,没指定的来自用户的脚本都不运行,而XSS就是在原来网站作者不希望运行脚本的地方插入脚本,所以有了白名单机制之后就挂了。原理就是这样。

为什么,因为标准是这样规定的。

宣传栏