我正在考虑允许用户在网页中输入JavaScript并让他们与其他用户共享这些页面。可能发生的最坏情况是什么?有什么方法可以让它“安全”吗?
答案 0 :(得分:5)
正如其他人所提到的,如果javascript只显示给其他用户并且没有运行,那么它将非常安全(当然不考虑用户手动运行代码)。
但是,如果代码运行,那么可能会发生一些不好的事情。可能发生的一件非常糟糕的事情是,您的网站被用来形成一个所谓的puppetnet。 Puppetnets类似于僵尸网络,但使用浏览器,因此单个木偶可能相对较短(这将木偶与僵尸网络区分开来)。 Puppetnets可用于分布式拒绝服务攻击,蠕虫传播,垃圾邮件等。
有关puppetnets的更多信息,请访问http://www.cs.ucsd.edu/groups/sysnet/miscpapers/puppetnets-ccs06.pdf。
答案 1 :(得分:4)
可能会发生什么名称 - Cross Site Scripting。基本上,您允许(恶意)用户Mallory在另一个(受害)用户Alice的上下文中运行一段代码。
Here是一篇关于防止在ASP.Net中发生这种情况的文章。
如果你想分享那些js片段的内容,而不是行为,那就是另一个故事。在这种情况下,您应该确保在向Alice发送包含由Mallory发布的代码的响应时,它被适当地封装为不被解析和执行的文本。
Here's是另一篇论文,经历了这个问题的许多曲折。
答案 2 :(得分:1)
这取决于。如果您将JavaScript放在文本框中,它只是文本,您可以共享文本,我们在此处执行此操作。如果您将机制放入将文本存储到.js文件中并自动将其附加到页面,则可能会出现严重问题。 更多的解释可能在这里很好。