Clickjacking
最后更新于
最后更新于
使用Trickest可以轻松构建和自动化工作流程,使用世界上最先进的社区工具。 立即获取访问权限:
在点击劫持攻击中,用户被欺骗点击网页上的一个元素,该元素要么是不可见的,要么伪装成另一个元素。这种操纵可能会对用户造成意外后果,如下载恶意软件,重定向到恶意网页,提供凭据或敏感信息,转账,或在线购买产品。
有时可以在加载页面时使用GET参数填充表单字段的值。攻击者可能会滥用这种行为,填充表单中的任意数据并发送点击劫持有效负载,以便用户按下提交按钮。
如果您需要用户填写表单,但又不想直接要求他输入某些特定信息(比如您知道的电子邮件或特定密码),您可以要求他拖放某些内容,以便写入您控制的数据,就像这个示例中所示。
如果您已经确定了一个需要用户点击某个元素来触发 XSS 攻击的情况,并且页面容易受到点击劫持攻击,您可以利用这一点来欺骗用户点击按钮/链接。 示例: 您发现账户私人详细信息中存在自身 XSS(只有您可以设置和读取的详细信息)。用于设置这些详细信息的页面容易受到点击劫持攻击,您可以使用 GET 参数预填充表单。 __攻击者可以准备一个点击劫持攻击到该页面,使用 XSS 负载预填充表单,并欺骗用户提交表单。因此,当表单提交且值被修改时,用户将执行 XSS。
在客户端执行的脚本可以执行操作以防止点击劫持:
确保应用程序窗口是主窗口或顶层窗口。
使所有框架可见。
防止在不可见框架上点击。
检测并警告用户可能的点击劫持尝试。
然而,这些破坏框架的脚本可能会被规避:
浏览器的安全设置: 一些浏览器可能会根据其安全设置或缺乏 JavaScript 支持来阻止这些脚本。
HTML5 iframe sandbox
属性: 攻击者可以通过设置 sandbox
属性为 allow-forms
或 allow-scripts
而不包括 allow-top-navigation
值来中和破坏框架脚本。这会阻止 iframe 验证是否为顶层窗口,例如,
X-Frame-Options
HTTP响应头 通知浏览器有关在 <frame>
或 <iframe>
中呈现页面的合法性,有助于防止点击劫持:
X-Frame-Options: deny
- 没有域可以嵌入内容。
X-Frame-Options: sameorigin
- 只有当前站点可以嵌入内容。
X-Frame-Options: allow-from https://trusted.com
- 只有指定的 'uri' 可以嵌入页面。
请注意限制:如果浏览器不支持此指令,则可能无效。一些浏览器更喜欢CSP frame-ancestors指令。
CSP中的frame-ancestors
指令 是防止点击劫持的建议方法:
frame-ancestors 'none'
- 类似于 X-Frame-Options: deny
。
frame-ancestors 'self'
- 类似于 X-Frame-Options: sameorigin
。
frame-ancestors trusted.com
- 类似于 X-Frame-Options: allow-from
。
例如,以下CSP仅允许来自相同域的嵌入:
Content-Security-Policy: frame-ancestors 'self';
有关更多详细信息和复杂示例,请参阅frame-ancestors CSP文档和Mozilla的CSP frame-ancestors文档。
child-src
和frame-src
内容安全策略(CSP) 是一项安全措施,通过指定浏览器应允许加载内容的来源,有助于防止点击劫持和其他代码注入攻击。
frame-src
指令定义帧的有效来源。
比default-src
指令更具体。
这个策略允许来自相同源(self)和https://trusted-website.com 的框架。
child-src
指令在 CSP 等级 2 中引入,用于设置 Web Workers 和框架的有效来源。
作为 frame-src 和 worker-src 的后备。
这个策略允许来自相同源(self)和https://trusted-website.com 的框架和工作者。
使用注意事项:
弃用: child-src 正在逐步被 frame-src 和 worker-src 取代。
回退行为: 如果 frame-src 不存在,则用 child-src 作为框架的回退。如果两者都不存在,则使用 default-src。
严格的源定义: 在指令中只包含可信任的来源以防止被利用。
尽管不是完全可靠,基于 JavaScript 的窗口破坏脚本可用于防止网页被嵌入。示例:
令牌验证: 在Web应用程序中使用反CSRF令牌,以确保状态更改请求是由用户有意进行的,而不是通过Clickjacked页面。
使用Trickest轻松构建和自动化工作流程,由全球最先进的社区工具驱动。 立即获取访问权限: