Javascript 此代码易受XSS攻击吗?(表格自动上传)

Javascript 此代码易受XSS攻击吗?(表格自动上传),javascript,html,xss,Javascript,Html,Xss,我有一些JavaScript,它检索用户提交的querystring值,将隐藏字段的值设置为参数,然后自动发布表单 这都是在页面加载时完成的。XSS是否有潜力 <script> function autoSubmit(){ var url = ... /* retrieve URL from querystring parameter */ document.getElementById("txt").value = url;

我有一些JavaScript,它检索用户提交的querystring值,将隐藏字段的值设置为参数,然后自动发布表单

这都是在页面加载时完成的。XSS是否有潜力

<script>
    function autoSubmit(){
        var url = ... /* retrieve URL from querystring parameter */
        document.getElementById("txt").value = url;
        document.getElementById("myform").submit();
    }
</script>
<!-- ...... --->
<body onload="autoSubmit()">
<form id="myform" name="myform" method="POST" action="http://www.mysite.com/someform.php">
 <input id="txt" name="txt" type="hidden" value="" />
</form>
</body>

函数autoSubmit(){
var url=…/*从querystring参数检索url*/
document.getElementById(“txt”).value=url;
document.getElementById(“myform”).submit();
}

否。您没有在任何地方执行远程代码,也不允许用户输入自己的标记。 但是你确定你关心XSS吗

由于通常的XSRF原因,该站点可能容易受到某种形式的XSRF的攻击:

  • 我告诉你(因为你提到了查询参数),你是通过HTTP GET加载这个页面的,但是它直接导致了一个帖子(可能)以某种方式修改了数据。用户可能会被骗点击带有邪恶参数的链接(sessionstealing?)
  • 再次强调:如果您没有采取任何其他预防措施,那么从远程位置发布可能会产生相同的效果

更深入的分析需要查看someform.php,客户端的任何输入都容易受到xss的攻击。在客户端避免这种情况的任何代码(隐藏输入等)都可以通过使用FireFox poster轻松绕过

我不认为这里的内容(将querystring参数转换为变量,然后通过表单数据提交)对XSS特别容易受到攻击,因为利用它只会让恶意用户破坏他们自己视图的呈现(在这种情况下,谁在乎呢?)。我能想出url参数的一个特定值来破坏页面的呈现吗?不,可能吗?我不知道…但没关系


这并不重要,因为这不是XSS发挥作用的地方。XSS漏洞不会通过单个用户执行表单发布而表现出来。当有问题的输入参数的值被呈现到恶意用户以外的其他用户可以看到的地方时,它们就会成为一个问题。因此,这是否会暴露XSS漏洞完全独立于您在此处提供的代码。这取决于您如何处理表单中的post参数,以及如何在整个站点中呈现该值的内容。

我想问的是代码是否易受攻击,而不是客户端输入。显然,根据定义,客户端输入是XSS的向量。如果您说代码易受攻击,请提供一个查询字符串输入,该输入将导致使用此代码的XSS?您提出了一个关于XSRF可能性的好观点。但是,我假设someform.php是健壮的,可以处理发送给它的任何数据。实际上,我的问题是,执行
hiddenfield.value=some\u user\u输入时是否存在任何危险。。。看来它是安全的,的确如此。您只是在修改dom节点的一个(real!)属性,这在符合标准的浏览器上应该是安全的,我不知道有哪种浏览器会出现这种错误。