我创建了一个Tor隐藏服务站点,该站点完全没有JavaScript或其他类型的客户端脚本。该页面包含HTML,CSS,图像和一些用于处理用户输入的JSP。

我鼓励用户使用NoScript,但是很多时候用户不听。在页面上放一条大消息,迫使他们禁用脚本太烦人了,以至于无用,并且用户会忽略警告。

有没有办法让我的网站告诉用户浏览器我的页面没有脚本,如果在页面上找到脚本,则忽略它们?

我这样做是为了防止XSS的额外预防措施,这些XSS可能来自恶意黑客,也可能来自试图识别用户IP的调查人员。我的网站。

编辑:
只是要弄清楚我想让网站告诉浏览器执行此操作,我不想告诉每个访问者如何配置其浏览器。用户通常很傻很懒。

评论

并不是一个真正的答案,但是您可以使用...等待脚本添加na消息(甚至禁用页面)!因此,如果他们忽略了您的禁用脚本建议,那么它们将被标记/禁用。但是,如果他们按照您的要求禁用了脚本,他们将只会看到您的站点/服务。

@loneboat,“ ...太烦人了,没用。”

这是2016年吗? “一切”都需要JS; XSS简直就是糟糕的编程,可以避免一英里...

@Kyslik-Tor隐藏的服务提供商建议主要由于此类原因禁用javascript。据我所知,JavaScript在2016年和2013年一样不安全。

@loneboat但是,如果成功进行XSS攻击,则恶意脚本可能会禁用该消息。因此,当一切正常时,该网站将对用户造成困扰,而当他们处于危险之中时,该站点将不会对用户造成伤害。

#1 楼

一个不错的选择是强化您的内容安全策略。它使您可以微调浏览器将加载/运行的资源,并且大多数浏览器都支持该资源。

请考虑以下标头:

Content-Security-Policy: default-src 'none'; img-src 'self'; style-src 'self';


这告诉浏览器禁用脚本,框架,连接和任何其他对象/媒体。然后,我们允许仅从同一域加载图像和样式表。

评论


当然,如果中间人或浏览器插件中有人想要注入脚本,则只需删除CSP标头,因为标头是针对每个响应而不是每个站点。

– Steffen Ullrich
16年6月3日,12:24



@SteffenUllrich如果攻击者具有足够的控制权来修改标头,我认为它们已经超出了XSS。

– grc
16年3月3日在12:39

@PatrickM,您可以根据需要设置font-src。

– grc
16年3月3日在15:13

@grc Ya。我不是不同意你的回答。我更想以此警告原始海报,他可能也需要允许字体。

–帕特里克M
16年3月3日在15:15

几乎所有用于缓解XSS,XSRF等的技术都假定攻击者无法修改从服务器发送给用户的页面,因为在这种情况下,实际上所有此类缓解都将失败。在谈论中间人攻击时,XSS,XSRF等并未考虑到该对话中-正如您正确指出的那样,在这一点上类似HSTS的事情变得有意义。这并不意味着您也不会尝试减轻XSS和XSRF,但是这存在于攻击者访问的不同层,在中间层,中间人还没有任何可能性。

–胸骨
16年6月6日在1:54