【发布时间】:2017-05-18 13:26:03
【问题描述】:
我正在尝试测试我们网站中特定的 POST 端点免受 CSRF 攻击。
为此,我尝试使用 iFrame。当我submit 表单时,整个页面都会重定向。我的印象是 iFrame window 应该只提交表单,而不是 整个(根?)文档?
示例代码...
<html>
<body>
<p>
<h3>CSRF Test.</h3>
<a href="#" onClick="crossDomainPost();">Click Me</a>
</p>
<form id="csrfForm" action="http://www.someWebsite/postTest" method="POST">
<snipped>
</form>
<iframe name="someiframe"></iframe>
<script type="text/javascript">
function crossDomainPost() {
var iframe = $('#someiframe');
var form = $('#csrfForm');
iframe.add(form);
// Submit the form in the iframe.
form.submit();
}
</script>
</body>
</html>
【问题讨论】:
-
add()不会将表单放入 iframe 中,它只是将元素添加到 jQuery 对象中。可以在表单上使用target作为 iframe -
你的意思是:
var form = $('#csrfForm'); form.target = "someiframe"; form.submit();? (因为这不起作用)。 -
很久没有这样做了,但应该可以工作stackoverflow.com/questions/8306640/…
-
哦..我明白为什么...
target不是 jQuery 属性...尝试form.attr('target', "someiframe")或form[0].target = "someiframe"或简单地将其硬编码为表单标签上的属性
标签: javascript jquery html iframe csrf