gpt4 book ai didi

javascript - 这是否容易受到基于 dom 的 xss 攻击?

转载 作者:搜寻专家 更新时间:2023-10-31 23:11:35 26 4
gpt4 key购买 nike

我与安全审计员有分歧,html/js 片段是否容易受到 XSS 攻击。

简而言之就是这样:

<html>
<form name="myform" action="page.php" method="post" onsubmit="return validate()">
<input name="field" type="text" size="50" />
<input type="submit" value="Submit" />
</form>

<script>
function validate()
{
var str=document.myform.field.value;
alert("Error in " + str);
return false
}
</script>
</html>

所以,我的审核员说这可能容易受到基于 DOM 的 XSS 攻击,但还没有给我一个例子。

我个人认为不是,因为alert里面有+,str是字符串所以没有执行。例如,如果有人在表单中提供“document.cookie”并点击提交,则警告框将打印“document.cookie 中的错误”(而不是实际的 cookie)。

最佳答案

这可能成为潜在威胁的唯一方式是,如果您包含来自不可信来源的不受您控制的脚本。

  • 恶意脚本可以将 alert 覆盖为另一个函数。例如,它可以将传递给 alert 的数据发送到它自己的服务器。
  • 恶意脚本可以用包含 value 属性的对象覆盖 document.myform.field 的值。因此可以使 alert 显示一条看起来像不同错误消息的消息,例如:

Error in authentication. Please go to www.phisherman.com and enter your user name and password.

如果您链接到来自不可信来源的脚本,您会遇到比上述问题更大的安全问题。

如果您没有链接到此类不可信的脚本,那么不会,这不容易受到基于 DOM 的 XSS 攻击。 form.field.value 包含一个字符串。它不被评估为脚本,转义字符无效,文本框中包含的字符串将显示在警报窗口中。用户在该字段中输入的任何内容都不能用于损害您的服务器或根据您发布的代码破坏您的数据。

我想说的是,如果您的审计员担心“基于 DOM 的 XSS”,即用户可能会通过操纵 DOM 对您的服务器造成损害,那么您的审计员对 DOM 和基于浏览器的 JavaScript 了解不多。用户可以破解打开 JavaScript 控制台并执行各种脚本,包括对您的服务器的 XMLHttpRequests,这些请求看起来像是来自您自己的脚本。需要在服务器上针对这些类型的攻击采取预防措施。担心用户在表单字段中输入的对 DOM 或 UI 的安全风险是愚蠢的。

关于javascript - 这是否容易受到基于 dom 的 xss 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com