如果我们想要阻止我们的网页被嵌入在 iframe 框架中,可以在代码中加入以下的 JS 代码:
- 基础方法
如果我们想要阻止我们的网页被嵌入在 iframe 框架中,可以在代码中加入以下的 JS 代码:
if (self != top) {
top.location.href = self.location.href;
}
这段代码的作用是检测当前页面是否在顶级窗口中打开,如果不是顶级窗口,那么将会通过修改顶级窗口的 URL 来让页面跳出框架。
- 利用 X-Frame-Options
X-Frame-Options 是一个 HTTP 响应头,它能够让网站所有者来决定自己的网站是否能够被内嵌到 iframe 框架中。它定义了 3 种不同的取值:
- DENY:禁止所有其他网站内嵌。
- SAMEORIGIN:只允许同源网站内嵌。
- ALLOW-FROM:指定允许内嵌的网站地址。
如果我们想要在代码中使用 X-Frame-Options,可以在服务器响应时加入以下内容:
response.headers['X-Frame-Options'] = 'DENY';
或者:
response.headers['X-Frame-Options'] = 'SAMEORIGIN';
如果我们想要允许特定的网站内嵌,可以这样:
response.headers['X-Frame-Options'] = 'ALLOW-FROM http://example.com';
以上 2 种方法都可以有效地防止网页被嵌入在 iframe 框架中。
示例说明1:在 iframe 框架中的网站被危害
有些攻击者会通过嵌入 iframe 框架中的网站来进行攻击,例如盗取用户的凭据信息或窃取用户的敏感数据。如果我们在自己的网站中通过 JS 代码或者 X-Frame-Options 来防范这种攻击,就能够让我们的用户更加安全。
示例说明2:在 iframe 框架中的网站受到更容易触发的 Clickjacking 攻击
Clickjacking 是一种通过伪装一个在页面下方透明的 iframe 框架,让用户在不知情的情况下在 iframe 中进行某些危险的操作。虽然 Clickjacking 攻击的危害性相对较低,但是利用 X-Frame-Options 或者 JS 代码来保护网站不容易受到 Clickjacking 攻击也是必不可少的。
本文标题为:JS防止网页被嵌入iframe框架的方法分析


- js如何防止ajax重复提交表单 2022-10-29
- CSS实例:超酷的网站导航按钮 2023-12-14
- 使用prerender-spa-plugin实现vue预渲染 2023-10-08
- 浅谈Selenium+Webdriver 常用的元素定位方式 2024-01-05
- VUE3(二十)VUE自定义指令v-preventReClick,防止多次点击,重复请求 2023-10-08
- php – 是否可以从HTML5的本地存储中提取数据并保存到服务器数据库? 2023-10-25
- JavaScript 实现模态对话框 源代码大全 2023-12-25
- CSS中的滑动门技术 2022-10-16
- 第8天:CSS布局入门 2022-11-04
- AJAX实现注册验证用户名 2023-02-23