禁止网站被iframe嵌套的解决方法

本文介绍了如何防止网站被iframe嵌套,从而避免点击劫持风险。主要方法包括在前端设置X-FRAME-OPTIONS响应头,禁止页面在frame中展示,以及在服务器端如nginx、Apache、IIS和htaccess中配置相应的X-Frame-Options选项,确保内容只能在相同源的页面中展示。DENY阻止所有嵌套,SAMEORIGIN仅允许同源展示,ALLOW-FROM允许特定来源展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们开发的网站可能会被别人利用嵌入到其他网站中,也就是别人镜像我们的网站,造成点击劫持风险。

目前收集到的有以下前后端2种维度来防止网页被iframe嵌套的办法:

一、前端

针对传统的Clickjacking,一般是通过禁止跨域的iframe来防范。framebusting通常可以写一段代码,以禁止iframe的嵌套。因为frame busting存在被绕过的可能,更好的方案是采用X-FRAME-OPTIONS,X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击劫持攻击,并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。

X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。

<meta http-equiv="X-FRAME-OPTIONS" content="DENY">

TIP:在实际项目中使用了,但不起作用,还是推荐通过后端Nginx配置来禁止iframe嵌套 

在PHP中,则可以在文件中添加以下代码:

<?php header(‘X-Frame-Options:Deny'); ?>

DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。

ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。

二、服务器端 

1、nginx

在配置文件的 http 、server 或者 location 中加入如下代码,来防止被嵌套。

add_header X-Frame-Options "SAMEORIGIN";

2、Apache

在 Apache 的配置文件的 site 中添加如下配置

Header always append X-Frame-Options SAMEORIGIN

3、htaccess

将如下代码加入网站根目录的 .htaccess 文件中,效果相同。

Header append X-FRAME-OPTIONS "SAMEORIGIN"

4、IIS

将网站根目录的web.config配置文件做如下修改,来禁止网站被嵌套。

<system.webServer>
    ...
    <httpProtocol>
        <customHeaders>
            <add name="X-Frame-Options" value="SAMEORIGIN" />
        </customHeaders>
    </httpProtocol>
    ...
</system.webServer>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值