使用 iframe 内嵌网站,如何防止被源网站发现? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hoythan
V2EX    程序员

使用 iframe 内嵌网站,如何防止被源网站发现?

  •  
  •   hoythan 2024-05-24 09:15:06 +08:00 3107 次点击
    这是一个创建于 596 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a.com 内嵌一个 iframe ,指向到 b.com
    b.com 非常容易发现 a.com 内嵌并封杀。

    如何实现完美的内嵌,但是不被源网站发现?


    想法: a.com 内嵌一个 aa.comaa.com 内嵌 b.com 。 ( aa.com 域名一周换一个),但是担心 b.com 会直接发现 a.com
    17 条回复    2024-05-27 09:37:45 +08:00
    ZE3kr
        1
    ZE3kr  
       2024-05-24 09:16:39 +08:00 via iPhone
    defunct9
        2
    defunct9  
       2024-05-24 09:18:45 +08:00
    把内容动态取过来,不要内嵌
    hoythan
        3
    hoythan  
    OP
       2024-05-24 09:19:44 +08:00
    @defunct9 b.com 中有一些 cdn 资源和静态文件资源,不太好直接取 HTML 源码然后显示出来,因为有的地址是

    ./xxx.jpg

    更改域名后无法找到正确的地址。
    LuckyLauncher
        4
    LuckyLauncher  
       2024-05-24 09:19:51 +08:00
    反代并删除 reffer 相关 header
    Seanfuck
        5
    Seanfuck  
       2024-05-24 09:21:34 +08:00
    用 service worker 修改 http 头
    defunct9
        6
    defunct9  
       
    哎,nginx 的 sub_filter ,改之
    my51paper
        7
    my51paper  
       2024-05-24 09:26:46 +08:00
    那么问题来了,如何防止你这种流氓行为,如何 ban ?
    qhd1988
        8
    qhd1988  
       2024-05-24 09:32:32 +08:00   1
    阻止不了,人家一个 window.top 就把你顶层的网页给发现了
    peasant
        9
    peasant  
       2024-05-24 09:37:51 +08:00
    @my51paper 写一段 js 检测 window.top.location 里的信息,如果不是自己的域名就跳转或者上报域名,然后把这段 js 跟别的 js 混一起加密。
    cwliang
        10
    cwliang  
       2024-05-24 10:23:41 +08:00
    内容安全策略可以设置被允许的域名内嵌,这种情况对方没有设置安全策略,如果发现了,你早就被 ban 了
    94
        11
    94  
       2024-05-24 10:33:42 +08:00
    别人都发现了给你域名 ban 掉了,你还直接套 `iframe` 里面……
    过几天直接在头部配置 [X-Frame-Options]( https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Frame-Options),不允许嵌入到 `frame` 你不就直接瞎了。
    所以用 Nginx 代理转发一层咯。但是如果对方就是不想让你嵌还是有办法的。
    不如直接点,花点时间把你需要用到的资源摘出来放到你自己的项目里面去用。
    gesse
        12
    gesse  
       2024-05-24 11:08:07 +08:00
    无法避免,在不同域名的情况下,用户本地浏览器的 iframe 作用域里 js 的`window.top`的返回结果无法修改。

    除非你能修改每个用户的浏览器。
    CEBBCAT
        13
    CEBBCAT  
       2024-05-24 11:15:10 +08:00
    > 这里绝对不会有任何教人如何钻空子的论
    @Livid
    luckyscript
        14
    luckyscript  
       2024-05-24 15:57:41 +08:00
    直接用服务器反向代理 b.com ,然后再在 a.com 里面嵌入你的反向代理的服务域名/ip 。
    hoythan
        15
    hoythan  
    OP
       2024-05-24 17:27:36 +08:00
    @dfkjgklfdjg 不会,已经和 B 沟通,去除了 X-Frame-Options 限制,但是域名商会 Ban 掉 整个账户。
    因为他们禁止域名用于纯 iframe 内嵌,认为我是诈骗,但是这家域名商价格最便宜,我又需要大量注册( 1000+),所以需要从其他域名商注册一个域名,代理 b.coma.com 访问, 核心目的是为了让这个域名商没法知道从他这里注册出去的 a.com 是用于 iframe 代理的。
    之前 ban 掉一个已经损失上万美刀了。


    @peasant
    核心需求是躲避类似 Google Console 这种的检查,因为我不确定 GANDI 的检查机制是什么。

    @LuckyLauncher
    @defunct9
    @Seanfuck

    我尝试代理,但是对方资源有的是 ./ 这种形式,到我的域名这里就无法访问了。
    ```nginx
    server {
    listen 80;
    server_name a.com;

    location / {
    proxy_pass https://b.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    }

    ```
    defunct9
        16
    defunct9  
       2024-05-24 17:45:01 +08:00   1
    location / {
    proxy_pass $scheme://mailer;
    proxy_set_header Host $host;
    # real-ip
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    # websocket
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_read_timeout 86400;
    ## replace content ##
    sub_filter_once off;
    sub_filter '撰写新邮件' '写信';
    sub_filter 'Dark mode' '深色';
    sub_filter 'Light mode' '浅色';
    sub_filter '[Administration]' '控制台';
    sub_filter '>Administration<' '>控制台<';
    sub_filter 'Trusted Senders' '可信发件人';
    sub_filter 'Collected Recipients' '收件人集合';
    sub_filter '</style>' '\n.pro,.brand,.nav-sidebar p.alert{display:none !important}\n</style>';
    }
    94
        17
    94  
       2024-05-27 09:37:45 +08:00
    @hoythan #15 ,好奇怪的需求。`ifreame` 中用 `./` 请求的静态资源,最终还是用的 `b.com/static/xxx` 这样的形式去请求的资源,和你的代理没有关系的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2708 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:19 PVG 10:19 LAX 18:19 JFK 21:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86