Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用javascript防止点击劫持攻击_Javascript_Security_Clickjacking - Fatal编程技术网

利用javascript防止点击劫持攻击

利用javascript防止点击劫持攻击,javascript,security,clickjacking,Javascript,Security,Clickjacking,点击劫持是指人们欺骗用户点击他们不应该点击的按钮,使他们执行恶意操作 我正在开发一种产品,作为商家的一种选择,它提供了一个iFrame组件,可以嵌入到网站中进行支付。登录用户将在iframe中看到一个按钮,他们可以单击该按钮执行重要操作。只有当单击真正属于他们时,才应调用此操作 我使用此代码来防止点击劫持: if (top == self || parent != top || document.location.hostname != document.domain) { top.loc

点击劫持是指人们欺骗用户点击他们不应该点击的按钮,使他们执行恶意操作

我正在开发一种产品,作为商家的一种选择,它提供了一个iFrame组件,可以嵌入到网站中进行支付。登录用户将在iframe中看到一个按钮,他们可以单击该按钮执行重要操作。只有当单击真正属于他们时,才应调用此操作

我使用此代码来防止点击劫持:

if (top == self ||  parent != top ||  document.location.hostname != document.domain) {  top.location.replace("https:\/\/www.mysite.com\/?404");}
有人能破解我的密码吗

注意:我不想使用x-frame-option


感谢

对于Iframe,您无法真正控制来自父级的单击,如果他们在Iframe内单击,但另一个事件正在监视它,您无法真正阻止它来自不同的域

但一切都没有丢失,Iframe本身无法阻止它,但它可以用这样的东西包装。这是假设jquery最好翻译成应用程序的本机版本,以便展示我将使用jquery的示例

<div id="i_wrap"><iframe src="SRC"></iframe></div>
<script>
$('#i_wrap').on('click',function(event){
event.stopPropagation();
});
</script>

$('i#u wrap')。在('click',函数(事件){
event.stopPropagation();
});
当然,这不是万灵丹,仍然有办法解决这个问题。您还可以使用新的HTML5跨文档消息传递的一部分来进行一些验证,并可能在不安全的站点上警告用户(如果您的iframe没有收到任何消息,那么您就不会显示任何按钮)

虽然我在跨文档消息传递方法方面没有经验,而且我确信它们可能不允许使用不同的域(尽管在某种程度上可能有解决方法)


虽然这个问题并不完全清楚,我可能也不完全理解,但如果您用更多细节更新您的问题,我将更新我的答案以适应。

这可能是重复的,没有任何意义。感谢您的回答,我将尝试进一步澄清:在(top==self | | parent!=top | | document.location.hostname!=document.domain){top.location.replace(“https:\/\/www.mysite.com\/?404”)}为了防止将他的内容加载到不同域的iframe上,我正在寻找一种绕过此保护的方法,以便成功地将此iframe加载到不同域上。一些人对我说,虽然没有x-frame选项,但这是可以利用的,但没有人给我实际的绕过。谢谢客户端语言的一个主要缺陷是er不是处理它的工具,而是客户端。这就是浏览器安全协议如此严格的原因,因为利用它很容易。根据我从这篇评论中读到的内容,我无法理解你真正想要的是什么。根据我读到的内容,你想尝试阻止一个网站,你的iframe有一些JavaScript,可能会试图捕获t他点击事件到你的网站。所以我在这里的回答只是尽可能地禁用它。