禁用特定页面的JavaScript执行(HTML / PHP)(Disable Javascript

2019-09-19 12:07发布

是否有任何HTTP标头以禁用javascript特定页面? 我的网站提供用户生成的HTML内容(这就是为什么我不能只用htmlenitities ),我想阻止脚本(JAVASCRIPT注射)。

我已经使用了被设置的HttpOnly饼干进行认证,只有主域,而用户的内容只在其中的cookie无法读取子域显示。 问题是,现在仍然有很多可能性执行JavaScript -例如使用事件属性一样onclick和Internet Explorer在CSS甚至一个属性,以允许JavaScript的执行( expression我从来没有听说过的)。 我已阅读的另一个有趣的想法,正要以阻止下面的代码抛出异常。 还有一个想法是定义一个包含所有合法的标签,另外每个允许的属性名称的数组列表,但是这是非常艰苦的工作,我想这并不能涵盖所有可能的注射。

我想我不会有这个问题的唯一的人,所以没有任何人知道涵盖所有可能的有害代码possiblility -在现代浏览器至少?

类似于一个简单的虚头X-Scripting: disabled会让生活变得更轻松!

Answer 1:

是的,有被称为实验HTTP头内容安全策略 ,可以让您控制的JavaScript来源,它可以使XSS是不可能的。 然而,目前只有Chrome和Firefox的支持。

这是一个好主意,使的HttpOnly饼干,但是这将防止恰好为零攻击。 您仍然可以通过利用XSS 阅读CSRF令牌,并开展与XHR请求 。

有获得XSS的方法很多,而像一个漏洞扫描器ShieldSeal会发现(几乎)所有的人。 Skipfish是一个开源漏洞扫描器,这是非常原始的,但它的自由。 这是大多数Web应用程序如何处理广泛的传播漏洞。 (我的SheildSeal工作,我帮助建立他们的漏洞扫描器,我爱我的工作。)

当一个问题被发现,你应该使用htmlspecialchars($var)htmlspecialchars($var,ENT_QUOTES)净化输入。 ENT_QUOTES可以防止攻击者引入一个onclick或其他JavaScript事件。



文章来源: Disable Javascript execution on specific pages (HTML/PHP)