允许任何javascript注入我的页面。有什么风险?

时间:2010-08-13 13:49:52

标签: javascript security

如果我的网络服务器只提供静态页面,我的html页面允许用户运行任何javascript。 “坏”用户可以对我造成任何伤害吗?

P.S。 有很多关于关注XSS的讨论,我正在做的事情更糟糕。 我让用户注入他/她的javascript。 我不知道的是他们会造成什么样的伤害?

由于

6 个答案:

答案 0 :(得分:3)

我可以使用Firebug或Chrome检查器在浏览器的任何页面上运行JavaScript。唯一的问题是,如果您允许用户在其他用户的浏览器中运行JavaScript。

答案 1 :(得分:3)

没有。坏用户不能对造成任何损害。

但是,用户A可以在页面中插入一些JavaScript代码,这些代码会对用户B造成烦扰或彻底的损害。用户B可能会让您对发生的事情负责。

答案 2 :(得分:2)

如果用户可以将javascript注入您的页面,则称为跨站点脚本(XSS)。

查看存储和反映的跨站点脚本之间的区别。两者都可以被视为安全漏洞,但存储的XSS具有更大的潜在损害。存储的XSS允许攻击者对用户的document.cookie进行HTTP发布,最糟糕的情况是允许攻击者登录管理页面。

由于“静态”内容,您的网站可能不会关注XSS。但是随着时间的推移,网站有改变和改进的趋势,然后那些不可利用的旧漏洞成为很好的攻击媒介。

答案 3 :(得分:1)

由于您只提供静态页面,因此风险较低;但仍存在风险。以下是攻击者可以做的一些事情

  1. 攻击者可以将代码重写为可以将页面的HTML重写为他想要的内容。这样,他创建的虚构内容似乎来自你。这可能意味着将您的产品价格列为0美元(或者可笑的低价)。或者它可能是关于贵公司的假新闻。然后,他通过facebook / twitter / digg等分享链接,人们开始访问注入的页面并相信攻击者希望他们相信的任何内容。

  2. 他可以将锚标记注入您的页面,链接到其他网站 - 例如成人网站。然后,他得到谷歌用html注入索引页面。通过这种方式,他人为地提高了成人网站的受欢迎程度,因为谷歌认为您的网站链接到成人网站。

  3. 如果您有来自同一域的任何管理页面,攻击者可以使用XSS窃取凭据并进入您的服务器。

  4. 这些是我脑子里的少数人;我确信攻击者可以想到其他问题。

答案 4 :(得分:0)

用户可以保存JavaScript并让别人以后再运行它吗?这就是问题所在。

答案 5 :(得分:0)

告诉我用户输入是否已保存并显示回来。如果那时我可以运行以下代码将导致浏览器崩溃

<script>
    window.location = "https://www.google.com";
</script>