如果没有其他用户可以看到未转义的用户输入,是否安全?

时间:2013-11-06 11:43:55

标签: javascript php security xss

有一个网页<textarea>

您可以在<textarea>中键入任何文本,如果您点击提交您在屏幕上输入的任何内容。如果您输入<script>alert('hello')</script>并点击提交,则会收到提醒。

网页不会存储输入的文字,因此您的输入无法在其他客户端(其他用户的浏览器)上呈现。

所述行为是否会为网页所有者或其用户带来安全风险?

3 个答案:

答案 0 :(得分:4)

由于您已标记此php,因此可能是表单已提交到服务器端脚本,然后呈现回输入。这使您容易受到reflected XSS attacks的攻击。<​​/ p>

<!-- on a third party site -->
<form action="http://example.com/your_script" method="post">
<input type="hidden" name="your_field" value="attack payload">
</form>
<script>document.forms[0].submit();</script>

如果不是这种情况并且内容被添加到具有客户端JavaScript的页面并且从不从HTTP请求中读取,那么它仍然容易受到鼓励人们“只是将其复制/粘贴到textarea中的攻击! ”

答案 1 :(得分:3)

攻击者可能会强迫用户意外访问您的网站。 E.g:

<form action="yourserver.com/insecure_site.php">
    ...
</form>

这允许攻击者将他想要的任何内容注入您的站点,而不知情的用户正在访问该站点。

答案 2 :(得分:3)

即使表单从未提交给服务器,执行此操作仍然存在风险。我在这里看到的主要风险是输入字段是否可以由外部站点填充。

考虑黑客的网站可以发布到您的表单,并使用任意javascript代码预填充它。

他可以发送他喜欢的任何 JS代码,这样就可以包含加载其他外部资源的代码。任何....

  • 它可以完全覆盖您的网页设计,以模仿其他网站的网页设计,进行网上诱骗攻击。 (这意味着,当发现您的网站被阻止而不是他的网站时)

  • 它可以将您的网站用作发送垃圾邮件的启动板。 (同样被阻止,你真的不想最终被列入垃圾邮件黑名单)

  • 它可能会使您的网站显然保持不变,但嵌入了一个跟踪用户或利用浏览器漏洞的恶意库。 (黑客经常竭尽全力将JS包含注入网站;在这里,你可以为它们打开一扇门)

网络安全的问题在于它是一个非常广泛的主题 - 有很多可能的方法可以被黑客攻击,需要覆盖很多角度。最终,保持安全的唯一方法是始终运用最佳实践;即使你没有看到数据被立即释放的直接方式,你仍然应该保护它,因为最终黑客依赖于我们看不到的漏洞。