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

33 天前
 hoythan
a.com 内嵌一个 iframe ,指向到 b.com
b.com 非常容易发现 a.com 内嵌并封杀。

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


想法: a.com 内嵌一个 aa.comaa.com 内嵌 b.com 。 ( aa.com 域名一周换一个),但是担心 b.com 会直接发现 a.com
2269 次点击
所在节点    程序员
17 条回复
ZE3kr
33 天前
defunct9
33 天前
把内容动态取过来,不要内嵌
hoythan
33 天前
@defunct9 b.com 中有一些 cdn 资源和静态文件资源,不太好直接取 HTML 源码然后显示出来,因为有的地址是

./xxx.jpg

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

除非你能修改每个用户的浏览器。
CEBBCAT
32 天前
> 这里绝对不会有任何教人如何钻空子的讨论
@Livid ❤️
luckyscript
32 天前
直接用服务器反向代理 b.com ,然后再在 a.com 里面嵌入你的反向代理的服务域名/ip 。
hoythan
32 天前
@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
32 天前
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>';
}
dfkjgklfdjg
30 天前
@hoythan #15 ,好奇怪的需求。`ifreame` 中用 `./` 请求的静态资源,最终还是用的 `b.com/static/xxx` 这样的形式去请求的资源,和你的代理没有关系的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043443

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX