绕过iframe busting

本文详细介绍了如何通过HTTP 204响应解决iframebusting问题,确保网页安全地嵌入第三方网站,如人人网。通过在onbeforeunload事件中加入特定代码和配置服务器响应,实现对iframe的正确处理。

最近因为项目的需要,要用iframe网页里边嵌入第三方的网站。比如人人网。前端工程师发现这个问题后,我过去看了看,发现是因为人人做了iframe busting。


后来研究了一下,比较好的方式就是当通过http 204来处理这个问题。


通过描述,就知道它的作用是干什么。

The server has fulfilled the request but does not need to return an entity-body, and might want to return updated metainformation. The response MAY include new or updated metainformation in the form of entity-headers, which if present SHOULD be associated with the requested variant.

If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent's active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent's active view.


所以,在网页的onbeforeunload加入这段代码:

var preventBusting = 0;
    window.onbeforeunload = function() { preventBusting++}
    setInterval(function() {
        if (preventBusting > 0) {
            preventBusting -= 2;
            window.top.location = 'http://yourwebserver/attacker';
        }}, 0.5);

如果是apache, 加入下面这段代码来处理204返回,在alias_module后,

 RedirectMatch 204 attacker(.*)$

nginx的话,差不多类似的方式

location = /attacker {
            return 204;
         }

测试通过。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值