是否有任何HTTP标头可禁用特定页面的Javascript? 我的网站提供用户生成的HTML内容(这就是为什么我不能只使用htmlenitities
),我想要阻止脚本(JavaScript注入)。在特定页面上禁用Javascript执行(HTML/PHP)
我已经使用HttpOnly-cookies仅在主域上进行身份验证,而用户内容仅显示在无法读取cookie的子域上。 问题是执行JavaScript的可能性仍然太多 - 例如使用事件属性(如onclick
),Internet Explorer甚至在CSS中有一个属性以允许执行JavaScript(expression
),这是我以前从未听说过的。我读过的另一个有趣的想法是关于抛出一个异常以阻止后面的代码。 另一个想法是定义一个包含所有允许的标签的列表,另外还有一个包含每个允许的属性名称的数组,但这是非常困难的工作,我想这不会涵盖所有可能的注入。
我想我不是唯一有这个问题的人,所以有人知道可能性覆盖所有可能有害的代码 - 至少在现代浏览器?
一个类似于X-Scripting: disabled
的简单虚构标题会让生活变得如此简单!
你有没有想过在用户输入中阻止'script'标签和某些属性? – 2012-07-14 12:19:52
这就是我的意思:“另一个想法是定义一个包含所有允许的标签的列表,另外还有一个包含每个允许的属性名称的数组,但这是非常困难的工作,我想这不会涵盖所有可能的注入。 (所以我会例如允许像“div”或“span”这样的无害标签并禁用诸如“onclick”,“onmouseover”之类的属性,但这不会涵盖所有注入,因为浏览器具有不同的,特定于浏览器的属性和属性) – 2012-07-14 12:22:32