问题标签 [clickjacking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 保护网站免受点击劫持;预期的行为应该是什么?
将点击劫持网站重定向到您的网站是可接受的解决方案吗?(因此,当您跳出框架时,您现在正在显示您的网站)让我们说您看到点击此处赢得 ipad 点击劫持网页。但是,当您在 2 秒内立即访问该网站时,您将被带到黑客希望您点击劫持的原始网站。所以现在你看不到 iframe 并点击这里 ipad 网页。哪个更好(更安全)退出 iframe 并重定向到您的网站或留在免费 ipad 页面上而不在 iframe 上显示您的网站?
javascript - 如何避免成为 Click Jacking 的受害者?
除了在 Chrome 上使用不同的个人资料仅用于社交活动之外,有没有办法检测并避免作为用户点击劫持?
一个相当有名的网站“atozmp3 .co .in”正在使用点击劫持来获得 Facebook 喜欢。有没有办法我们可以找到这些网站并制作黑名单?
我在 Facebook 网站上所能做的就是“举报该页面”。我看到很少有其他页面以这种方式获得喜欢。有没有办法检测到它并避免成为受害者?
javascript - 为旧版浏览器单击 Jacking
我需要为网站添加点击劫持保护。我知道这可以在 IIS 中通过为较新的浏览器设置 X-Frame 选项来完成。对于较旧的浏览器,我知道您需要添加 frame buster - 这是一些 javascript 等。
这是我的主要问题:如果您必须为旧浏览器的框架破坏者添加 javascript - 您是否必须将其添加到您网站中的每个 html 页面中?我的网站有很多不同的 html 页面等。只需要一个好的意见。
redirect - 使用 HTTP 重定向尊重 X-Frame-Options
我正在另一个域上使用这样的简单页面测试点击劫持缓解:
我的登录页面发送以下标题:
我很惊讶地看到 IE 10 和 Chrome 33 都遵循重定向并在<iframe>
. 我的登录页面没有发送X-Frame-Options
,但我希望X-Frame-Options
登录页面上的第一个胜过重定向。当我的登录页面显示在框架中时,如何防止浏览器跟随重定向?
<iframe>
如果登录页面没有发送 HTTP 重定向,我应该补充一点,事情会按预期工作(为空/被阻止)。
html - 将一个 iframe 覆盖在另一个 iframe 之上,将它们一起滚动
跟进如何重写 Javascript 代码引用的 URL?我想在别人的网站上覆盖一个按钮(例如,在 Stackoverflow 的赏金按钮旁边覆盖一个 Paypal 按钮)并让这两个<iframe>
s 一起滚动。该按钮将位于顶层。该网站将位于底层。
我知道 transparent<iframe>
被滥用于点击劫持,但浏览器安全机制似乎阻止了合法用例。在我的情况下,用户看到的是他/她正在点击的同一个按钮。甚至有可能这是一个浏览器错误。
这是我在 Chrome 下看到的内容:
- 顶部
<iframe>
拦截所有鼠标点击,即使是不包含任何组件的区域。这意味着,用户根本无法与底层交互。 <iframe>
如果我对顶部进行样式设置,pointer-events: none
则会出现相反的问题:用户能够看到顶层,但所有鼠标点击都转到底层。应用pointer-events: auto
到子组件没有帮助(点击仍然通过底层)。- 如果我调整顶部的大小和位置,
<iframe>
使其面积与我要覆盖的按钮精确相等,则鼠标单击会转到右侧层,但顶层无法与底层一起滚动。意思是,按钮始终保持在与底层滚动相同的绝对位置。
我是否可以在顶层放置一个按钮,使其始终与底层的某个位置对齐?在我将 Paypal 按钮放置在 Stackoverflow 赏金旁边的示例中,我希望 Paypal 按钮在用户向下滚动问题时滚动到页面外。
https://stackoverflow.com/a/4087397/14731让我相信这是不可能的。还有其他方法可以实现吗?
更新:这是一个jsfiddle供您使用。该test
按钮位于页面中间的“NEWS & VIEWS”右侧。
javascript - 破坏框架的 JavaScript 代码 - 执行顺序
我们的代码中有一个问题,以前的开发人员试图采取预防措施来阻止点击劫持(阻止点击劫持),这是一个我不喜欢的术语。无论如何,他们将以下代码放在我们所有.aspx
页面的顶部,甚至不在其head
上方的元素内。
因此,显然对于安全性很重要,问题是我们遇到了一个问题,因为theBody
上面的内容是未定义的,因为 body 标签尚未加载。因此,为了停止js
代码中断,我们将上述脚本剪切并粘贴到页面底部。这是一种修复。我们只是想知道这种方法是否会使最初拥有代码的实际原因无效。有人可以给我一些建议吗?
javascript - 仍然允许来自自己域的帧的 Javascript 帧杀手?
我们正在使用 X-Frame-Options 标头以及本页描述的 JS/CSS 设置来实现点击劫持保护:
https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet
作为参考,JS/CSS 解决方案如下所示:
鉴于所有现代浏览器都广泛支持 X-Frame-Options 标头,我想知道我们是否应该保留 JS 框架杀手。也许只是为了好衡量?如果这样做,我们需要注意的是,我们使用 colorbox 从我们自己的域中生成 iframe 弹出窗口。这可以通过将其设置为 SAMEORIGIN 来容纳在 X-Frame-Options 标头中,但我不知道如何修改 JS 以允许来自同一域的帧而不会轻易绕过它。
实际上,如果它们相同,脚本会比较self === top
并从正文样式中删除它们。display:none;
我可以修改条件以检查域,如下所示:
但这使用了location
可以从框架页面更改的对象,有效地绕过了脚本。基本上,我在这里寻找类似于这个被否决的建议的东西:
https://stackoverflow.com/a/21900420/998048
所以,2个问题:
1.) 用 JS 实现帧杀是否仍然被认为是最佳实践,甚至是必要的?
2.) 如果是这样,是否有更好、更安全的方法来保持 JS 就位但仍允许来自我们自己域的帧?
jboss - 如何配置 JBOSS 5 以包含 X-Frame-options 标头?
我一直在使用 jBoss 5.1 来部署我的应用程序。在测试点击劫持问题时提出。在搜索了许多网站和博客之后,我无法找到答案。在其中一个站点中,我发现如果站点未出现在 iframe 中,点击劫持被禁用:
<iframe src="http://localhost:port"/>
Jboss 主页现在显示在 iframe 中。请让我知道如何使用 X-frame-options 禁用此功能以避免点击劫持。
谢谢。
java - 配置 x-frame-options 响应标头 Spring Security 3.1
我正在尝试使用 Spring-Security 3.1 配置 x-frame-options 响应标头,以避免 ClickJacking 攻击。我发现我可以通过 XML 配置文件做到这一点,但它似乎只适用于 Spring Securit 3.2。是否有另一种方法可以使用我正在使用的版本?
django - Django XFrameOptionsMiddleware (X-Frame-Options) - 通过客户端 IP 允许 iframe
我正在使用 Django XFrameOptionsMiddleware 来控制点击劫持,但我有一个客户需要能够从他们的网络中浏览 iframe 中的应用程序。我希望能够从视图方法中应用(或删除) xframe_options_exempt 装饰器。