Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php XSS和内容安全策略_Php_Xss_Htmlspecialchars_Content Security Policy - Fatal编程技术网

Php XSS和内容安全策略

Php XSS和内容安全策略,php,xss,htmlspecialchars,content-security-policy,Php,Xss,Htmlspecialchars,Content Security Policy,通过阅读,我知道什么是上下文感知转义 在我的其他一些项目中,我使用过,但我想知道如果我启用了内容安全策略而不允许JavaScript(脚本)和CSS(样式),那么使用它来防止XSS是否足够。在我看来,这消除了PHP文件本身中的JS和CSS上下文 假设我不需要输出不可信的HTML数据,只输出HTML和HTML属性中的数据 我真的希望远离像Twig和Smarty这样的模板框架。不。CSP还不是所有浏览器都支持的。而且很多人都使用较旧的浏览器。CSP目前对那些使用体面浏览器的人来说是一个不错的奖励,你

通过阅读,我知道什么是上下文感知转义

在我的其他一些项目中,我使用过,但我想知道如果我启用了内容安全策略而不允许JavaScript(脚本)和CSS(样式),那么使用它来防止XSS是否足够。在我看来,这消除了PHP文件本身中的JS和CSS上下文

假设我不需要输出不可信的HTML数据,只输出HTML和HTML属性中的数据


我真的希望远离像Twig和Smarty这样的模板框架。

不。CSP还不是所有浏览器都支持的。而且很多人都使用较旧的浏览器。CSP目前对那些使用体面浏览器的人来说是一个不错的奖励,你可以从报告策略中得到警告。但这不是你可以依赖的

如果您只有支持CSP浏览器的用户,那么CSP应该可以安全地抵御php中带有htmlspecialchars的XSS,并且如果您设置了正确的策略,则可以转义javascript模板为所有输出生成的所有输出。这意味着不安全的内联和不安全的评估都是不允许的。您还应该将主机限制为您知道从中加载资源并信任的主机。仅对您的站点和加载资源的任何其他站点使用https,并使用https避免攻击

仅允许访问在iframe中使用该主机的页面上的iframe主机

带有报告uri的报告也是必须的,以查看您的站点是否存在任何潜在的攻击,或者对于未启用CSP的浏览器是否存在问题


更多信息和信息

好的,但是对于支持CSP的浏览器呢?Woo,这是我第一次听说
报告uri
…作为一个概念,听起来有点危险,因为它肯定会通过向站点所有者大量提供导致垃圾站点的欺诈性报告或仅仅生成额外的(手动)报告来引发“DDoS”攻击检查这些报告的努力…
报告url
确实很糟糕,会淹没网站所有者,但这不是因为攻击,而是因为编写糟糕的浏览器插件。一些插件可以单独生成数百个合法的警告,但这是插件的错误,而不是网站所有者可以控制的任何东西。