访问主站通过 GET www.bilibili.com 打开,
然后 bilibili 所有接口(这里注意,是所有的接口)通过 POST www.bilibili.com 在 body 通过{cmd: "XXX"}的形式加载,
这样是否可以达到屏蔽域名你也不能正常访问网站?
1
crclz 2021-04-23 12:49:07 +08:00
不是很清楚你的问题。
如果你想问能否通过访问 b 站的接口,制作 bilibili 的克隆网站,那么这个问题的答案是会有服务端跨源策略禁止你的 POST 。 如果你想依赖 b 站的接口制作一个 bilibili 第三方纯净客户端,那么是可行的( windows 商店好像有) |
3
crclz 2021-04-23 12:53:57 +08:00
哦我好像懂你的意思了。忽略我的上一条
|
4
cmdOptionKana 2021-04-23 13:11:34 +08:00
感觉不太行,我可以先把广告一起获取了,但不显示。
|
5
oott123 2021-04-23 13:12:57 +08:00 2
一般没有这么费劲的,检查到广告加载失败直接罢工就是了
但广告拦截软件还可以放过广告请求,但动态修改你的 DOM,然后你通过一个 js 去检测他有没有改你的 DOM,如果有你就再罢工…… 何必互相伤害呢,装了广告拦截的用户几乎都不是广告的受众,带不来什么收益,广告屏蔽对双方都好…… |
6
cxe2v 2021-04-23 13:13:00 +08:00
```
例如正常的设计是: 网站:www.bilibili.com 用户接口 www.bilibili.com/api/user/1 广告接口 www.bilibili.com/api/ad/2021-01-01 ``` 你得用户接口不还是和广告接口不一样吗?依然可以制定匹配规则,精准屏蔽你的广告接口 |
7
lichdkimba 2021-04-23 13:16:16 +08:00
前后端不分离 可以直接没有广告接口啊。。。
|
8
3dwelcome 2021-04-23 13:39:40 +08:00
我猜测楼主想描述的,就是和小米电视广告屏蔽一样,不能简单只改 hosts,就把广告给删了。
个人总结下来有四种方法: 1 是和 bilibili 客户端一样,页面初始化的时候强制调用 www.bilibili.com/api 接口,再进入主页面,你肯定不能把 www.bilibili.com 给删掉吧。 2 是请求用 websocket 处理,因为是流式数据,不可能只屏蔽广告其中一个请求。还可以自己写一点协议加密。 3 是用 vue 之类属性监控方法,看 dom 有没有被外部脚本动态修改。 4 运行过程中,用遍历 dom 方式,给 http 整体签个名。不符合服务器预设签名的,直接不显示内容,用户只会觉得是广告拦截的问题。 其实最好的办法,就是检测在 chrome developer tool 里 content scripts, 所有会对你网站 DOM 进行恶意操作的脚本,都在这个列表里。只是目前不清楚怎么能获取。 |
9
cpstar 2021-04-23 13:45:00 +08:00
网站运营方这么搞,成本太高,除非自己就是广告渠道商。
|
10
wunonglin OP @oott123 #5
@lichdkimba #7 不一定是网页、例如其他设备 @cxe2v #6 我说的是将正常的改成下面的 @3dwelcome #8 是的。例如 host 、ssr 规则之类的就能去掉,提高去除门槛而已。websocket 也不错,只是要支撑很多人的情况下消耗太大。 |
11
wolfie 2021-04-23 13:51:23 +08:00 1
|
12
retanoj 2021-04-23 16:25:06 +08:00
你咋绕过的人家,人家就咋绕过的你
除非广告不是广告,广告就是正常的内容 |
13
X-Force 2021-04-23 16:44:53 +08:00
人家直接操作 CSS 或 DOM 移除相关内容就行,管你是什么接口获取的内容。
|
14
wpyfawkes 2021-04-23 17:14:06 +08:00
我记得达尔盖的旗帜检测到广告被屏蔽就不会显示图片,楼主可以去研究下.😆
|
16
joesonw 2021-04-23 17:50:40 +08:00 via iPhone
1,获取路径也要证书解的
2,屏蔽广告是浏览器插件,可以获取你所有请求信息(授权情况下),没有证书不证书一说。 |
17
honeycomb 2021-04-23 17:59:09 +08:00 via Android 1
@wunonglin 实际上很多网页就是这么做的,把 html 元素的 id/class 标记成随机数,这样 adblocker 就很难去拦截它。
为此 adblocker 发展出了更复杂的拦截功能。 anti-adblock 也类似,可以用相同的 anti-anti-adblock 去反制。 app 的 api 可以用代理实施中间人攻击,对付方法也有,用 tls 证书绑定,非越狱 /root 无解 |
18
honeycomb 2021-04-23 18:01:06 +08:00 via Android 6
前几年 cnbeta 曾经和 adblocker 打过一架,几分钟更新一次前端代码,后来发现搞不过。
现在它就把广告放到信息流里不和正常信息区分了,但是 adblocker 还是能认出来,因为它用了广告联盟的链接 |
20
locoz 2021-04-23 18:26:12 +08:00
其实没啥卵用,无非就是处理成本的问题。你要搞特殊加载方式,别人就直接用透明代理检测内容做拦截,或者直接就 hook 你程序干掉广告内容的显示,实在不行就压根不用你的东西...
|
21
locoz 2021-04-23 18:29:06 +08:00
@honeycomb #17 现在 Android 上对非系统应用是可以不需要 ROOT 、解 BL 锁的,直接套容器里弄个虚拟环境出来就随便搞了,所以也就只是 iOS 无解。
|
22
pkookp8 2021-04-23 18:46:34 +08:00 via Android
后端把网页生成图片贴到前端,啥都能防
|
23
natsji 2021-04-23 19:55:44 +08:00 via Android
|
24
natsji 2021-04-23 19:58:03 +08:00 via Android
|
25
shuntdown42 2021-04-23 20:35:09 +08:00
反反广告拦截规则
ad-edentw.txt:合并自 Adblock Warning Removal List 、ABP filters 、anti-adblock-killer-filters raw.githubusercontent.com/o0HalfLife0o/list/master/ad-edentw.txt |
26
IvanLi127 2021-04-23 20:41:24 +08:00 via Android
可以,但是现在广告拦截不只是阻断接口的访问
|
27
psllll 2021-04-23 21:54:06 +08:00
把广告做进正常的内容,参考动漫疯
|
28
dream7758522 2021-04-23 22:28:24 +08:00 via Android
优酷爱奇艺不是已经实现了吗?开了过滤,直接不放视频了,一个大黑框提示关闭过滤
|
29
iseki 2021-04-24 00:50:31 +08:00
这都是道高一尺魔高一丈的东西,你这么设计接口赶明人家反广告工具上 json path 信不信(
|
30
tia 2021-04-24 01:55:37 +08:00
你除非拿出和对方一样规模的团队 https://github.com/gorhill/uBlock
|
31
nvkou 2021-04-24 03:13:21 +08:00 via Android
学学游戏。看完广告获取令牌从而让用户主动走完流程。
|
32
MaiKuraki 2021-04-24 07:26:47 +08:00
好像有点儿难反。建议起诉开发广告拦截的
|
33
xingshu1990 2021-04-24 08:29:56 +08:00
学学 youtube 学学泰国的广告,学学霓虹国的广告。
国内的广告制造焦虑太明显,贩卖焦虑太明显。特别是近些年的在线教育,培养了太多的焦虑的父母,造就了太多的鸡娃。 |
34
xingshu1990 2021-04-24 08:32:10 +08:00
目的性太强烈,功利性太明显的广告,现在的大众都不想看。反而泰国好玩的广告,我可能连电视剧都不看了。
|
35
yyyb 2021-04-24 09:38:14 +08:00 2
一天到晚琢磨怎么反广告拦截不如提升一下广告质量和投放方法,你们还想强制用户吃屎不行?
|
37
gamexg 2021-04-24 10:04:08 +08:00
这个根本没难度
第一,一般是第三方的广告平台,直接屏蔽广告平台域名完事,你没办法去改平台域名,如果上自己的反代,小心被当作作弊。 第二,即使加载处无法屏蔽,也可以从 DOM 处屏蔽。我记得有个网站广告 DOM 没任何 id css 等标记,但是当时一样按位置解决了。 靠谱的方法如上面讲的,js 探测,如果发现屏蔽广告就警告。但是要注意,探测的 js 别一样被人屏蔽了。 不过这个只能对抗通用过滤,如果专门针对某个网站的油猴脚本,一样难以解决。因为 DOM 的方法可以被替换。 |
38
InuYasha1987 2021-04-24 10:11:18 +08:00 via Android
@honeycomb 就从那时候起我不看 cnbeta 了
|
39
newmlp 2021-04-24 10:21:15 +08:00
这个反广告拦截实际上没啥意义,人家真不想看你广告你非要让人家看到,能带来什么收益呢?而且还要投入人力时间
|
40
Cu635 2021-04-24 10:43:42 +08:00
反广告拦截?
注意在接广告的时候不要接那种恶心人的广告,注意筛选高质量广告。 |
41
hui314 2021-04-24 17:10:31 +08:00
楼主应该是想说把接口做成类似 RPC 的形式,这样可以达到“设计一个你不能屏蔽我网站的接口不然你就不能正常使用我的网站”的意图。
但是我可以 block 网站的某个元素。 |
42
lichdkimba 2021-04-24 19:35:36 +08:00
@wpyfawkes 达盖尔那个太低级了。。。。就是检测没显示就隐藏内容。。很容易写个小脚本解决
|
43
domodomo 2021-04-25 11:32:57 +08:00
你不如干脆上街抢劫算了
|