【问题标题】:Embedding iFrame form -- how to get parent URL嵌入 iFrame 表单——如何获取父 URL
【发布时间】:2015-01-13 15:23:41
【问题描述】:

我有一个其他人将嵌入到他们网站上的表单:

<form method="post" action="http://example.com/">
    <input type="text name="name" />
    <input type="submit" />
</form>

如果用户在他们的网站上提交该表单(也就是说,它嵌入在他们网站上的 iframe 中),我将如何从请求中获取 parentURL,这可能吗?

【问题讨论】:

    标签: javascript html iframe csrf


    【解决方案1】:

    确保脚本处于 onload 事件中或就在结束 body 标记之前,以便具有 ID 的元素存在

    <script>
    	var url=document.location.href;
    	document.getElementById("fromSite").value=url;
    </script>
    <form action="#">
    <label for= "firstname" id="firstname">First Name*</label>
    <input type='hidden' value='' name='fromSite' id="fromSite"/>
    <input type="text" name="firstname">
    <button type="submit">Submit</button>
    </form>

    【讨论】:

      【解决方案2】:

      跨站点脚本安全性可以防止这种情况发生,要做到这一点,您应该为您的用户提供将父 url 窗口路径指向 iframe 的脚本。

      在包含 iframe 的页面中:

      <script>
      urlVal = document.location;
      </script>
      

      在您的 iframe 页面中,您可以通过以下方式访问 urlVal

      parent.urlVal
      

      【讨论】:

      • 如果 iframe 位于单独的域中,您的解决方案可能会出现问题。它需要通过设置 document.domain 或其他方法来采取其他措施。
      猜你喜欢
      • 2011-04-08
      • 2017-08-08
      • 1970-01-01
      • 2011-04-13
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      相关资源
      最近更新 更多