使用内容安全策略 (CSP) 的真正意义是什么?

What is the real point of using content security policy (CSP)?

我已经阅读了所有官方动机,为什么它是自切片面包以来最好的东西,但实际上,如果它可以被禁用 and/or 通过浏览器扩展、浏览器设置甚至浏览器默认设置 settings/configurations/functions/properties 还是通过代理?

如果有人真的想以您的网站为目标,他们为什么不禁用它或使用自定义方式连接到您的网站?

抱歉,这不是特定的代码问题。我想知道为什么首先要费心实施它? Lord 知道语法不简单,而且严重缺乏功能,让您在允许冒险行为或限制站点功能之间做出选择,而无法以安全的方式保留功能。

每个安全工具、指南和策略确实解决了不同环境下的不同问题。

例如,代理可以重写。 但是有TLS/SSL/encryption对抗中间人

例如,browser/plugin可以改写内容。 有杀毒的。它们已经 运行 在客户端计算机上,这不是问题。

(如果小偷已经在你家,你不会为了安全而锁门)

CSP 与一个问题作斗争 - 来自可信来源的不可信内容。 第三个 party/user 在您信任的网站上生成了内容。

例如。 如果有人上传图片或 javascript 到例如eBay、亚马逊或任何带有支付网关的在线商店,服务主机或最终用户都不希望它们被执行以窃取您的密码、窃取登录 cookie 或将您重定向到钓鱼网站。

If someone truly wants to target your site, why wouldn’t they disable it or use a custom way to connect to your site?

他们可能会,但这不是 CSP 所要防范的。

很多网站黑客都是这样的:Bad Guy hacks site。无辜的受害者访问网站,并被坏人的有效载荷击中。在这种情况下,CSP 致力于保护受害者,而不是防止坏人进入。(其他安全措施负责初始攻击。)

另请注意,如果您从第三方网站(例如 PayPal 或 Google)获取功能,则“受害者”可以是您的网站,因为如果其中一个人遭到黑客攻击,您网站上的 CSP 可以说“嘿,那是不允许的”。几个月前,一家服务提供商(忘了是谁)遭到黑客攻击,攻击了大量网站,因为他们都从该网站提取代码。客户站点本可以通过单行 CSP 识别供应商代码无效来阻止其客户受害