1
SaltyLeo 2021-07-01 12:03:02 +08:00 via iPhone
原因大概是用户体验差,各端的性能不一样,如果运行一样的代码,pc 可能 200ms,移动端可能 1000ms 甚至超时。
|
2
DeWjjj 2021-07-01 13:31:16 +08:00 via Android
浏览器暴力破解就离谱了。。。
那他同时发起访问你还是得崩。 |
3
xieqiqiang00 OP @SaltyLeo 只要访问者付出的算力大于服务器的算力就可以防滥用 /攻击了,也不用算很久的吧。
|
4
xieqiqiang00 OP @DeWjjj 防火墙层面的,不碰到业务逻辑,服务器的工作量应该都很小。
|
5
xieqiqiang00 OP @SaltyLeo 单说时间的话,Cloudflare 的五秒盾的等待时间经常都超过 5 秒,但也铺开并大面积应用了
|
6
Aruforce 2021-07-01 14:35:32 +08:00 1
只攻击你工作任务下发的接口就行啊。。。也就是你的第一步
反正占着你的 connection 不释放.... 你拿我怎么办? |
7
xieqiqiang00 OP @Aruforce 我针对的是 CF5 秒盾的改进想法,cf 本来就是抗攻击的,你又不可能打死 cf,cf 保护的是后面的网站和业务不受影响
|
8
FS1P7dJz 2021-07-01 15:59:25 +08:00
在第一个阶段用大量肉鸡冲垮你就行了
谁说我非要正常访问你了? 攻击防御永远都是资源力量的比拼 套 CF 只是借用 CF 强大的力量而已 |
9
xieqiqiang00 OP @FS1P7dJz 我问的就是 CF 这种防御商为什么都没有用 PoW 防火墙
|
10
chenluo0429 2021-07-01 16:44:01 +08:00
简直就像银行怕排队的人太多,要求大家一起在大厅做俯卧撑,先做完 1000 个才能办理业务?
|
11
xieqiqiang00 OP @chenluo0429 类似吧,如果你真的要攻击的话,得伤敌 800 自损 1000 或者更多
|
12
Aruforce 2021-07-01 17:29:27 +08:00
@xieqiqiang00 你非要这么说的话...
那就是 下发工作任务比给个 5 秒盾页面的占用的网络资源多... 除此之外 正常的请求 要改造代码支持每个请求返回数据不一致,浪费 CPU 而且降低 CDN 的性能。。 改造业务方代码或者改造浏览器 支持静态资源自动解密。。浪费客户端计算资源。。。 |
13
xieqiqiang00 OP @Aruforce 虽然不能接受,但成本原因是我觉得唯一的可能性,现在的攻击源可能连简单的 JS 验证都绕不过,现有的方案绰绰有余了。
但未来的话 emmm,比如说控制了物联网设备或者边缘计算设备进行 CC 攻击,攻击源有能力执行 JS 代码的话,现有的 5 秒盾可以说不堪一击吧。 |
14
Aruforce 2021-07-01 18:02:48 +08:00
@xieqiqiang00
现在: 5 秒盾 对于正常用户来说就算是一种工作量证明,但是现在 DDOS 的人家才不管你这套 ... 一方面 CDN 判断失误的....导致 请求漏到后端网站 直接占的你的 connection 不释放...影响正常用户使用 另一方面 即使 CDN 没判断失误... CDN 抗 DDOS 的流量也是要买的而肉鸡流量不要钱的.... 攻击源有能力算 js 之后: 1. CDN 判断正确 你是 DDOS 1.1 你想打到后端网站的话 你得遵从 CF 规则假装成正常请求 等 5 秒之后 CF 才会放过你 替你去后端网站拉数据过来... 这样就拉长了时间 降低了后端网站流量负载....所以不能说 5 秒盾不堪一击... 1.2. 如果 你不等 5 秒 那就是 CF 就拦截了你的请求 ... 2. CDN 判断失误 你就流量打到了后端网站.. 这种没办法只能后端网站硬抗。。 |
15
xieqiqiang00 OP @Aruforce
1.cloudflare 这种流量不计费,cf 像是保姆式的保护,开启之后一切都是自动完成,我最上面的那种模式理论上也可以自动嵌入已有网站 2.不断地有请求发出,等 5 秒以后抵达应用服务器,cf 的 5 秒盾只有首次请求验证,后面就放行,最后还是能达到正在的服务器上,如果用我的这种工作量证明进行验证,攻击源就要花费大量的 CPU 来计算,一台电脑同一时间发不出太多有效请求,大大降低攻击力度了 |
16
no1xsyzy 2021-07-01 19:22:37 +08:00
一方面体验不均衡
二来容易被人造谣说你在盗用用户 CPU 挖矿,回头你还是只能把这个技术给打入冷宫 三是不环保 @Aruforce 你好像理解错了,主题说的是由 CDN 的末端节点来作 PoW 验证,去占任务下发 connection 就是等于 CDN 完全抗下来了,源服务器一点没影响。 |
17
wdlth 2021-07-01 22:22:14 +08:00
有吧,我见过用 Canvas 指纹做的。
|
18
ihipop 2021-07-01 22:59:42 +08:00 via Android
@chenluo0429 然后大家都进大厅不做俯卧撑,把大厅沾满。。。
|
19
jim9606 2021-07-01 23:51:50 +08:00
类似技术在电子邮件反垃圾有应用。Web 网站搞这个的麻烦在于你不知道 PoW 难度要怎么定,PC 和手机算力差好远的。
另外 PoW 挑战和验证要占额外资源,如果 CDN 连静态 GET flooding 或者 SYN flooding 都扛不住,那 PoW 更没戏。 还有 API 网关咋办?你的客户端能接受 CDN 给你返回一个带 js 的网页? |
20
msg7086 2021-07-02 04:43:32 +08:00
有一些 captcha 就属于 PoW 。比如著名的看图识物就是一种 PoW,这里的 Work 是人脑 Work 。
|
21
yefee 2021-07-02 08:50:13 +08:00
赞同 @msg7086 的说法。
不管是短信验证码也好、拼图也好、旋转也好、点击也好也好,全都是工作量证明。而且是很典型的:电脑需要很高成本,而人脑需要极低成本的工作量证明。 |
22
xieqiqiang00 OP @jim9606 请求资源是 html 的话就插入一段 js,然后把结果记在 cookie 里,api 接口的话的确不太好自动防护
|
23
xieqiqiang00 OP @msg7086 思路新奇
那有些要半个小时才能通过的验证码就是拿人脑挖矿呢😂 |
24
ykrank 2021-07-02 10:31:17 +08:00
一开网页就 CPU 100%,风扇狂赚,你网站只会被立刻投诉挂马和挖矿
|
25
xieqiqiang00 OP @ykrank js 是单线程的
|
26
xieqiqiang00 OP @ykrank 而且事实告诉我们,喂用户吃屎用户也是反抗不了的
|
27
Aoang 2021-07-02 13:14:16 +08:00 via Android
PoW 只适用于验证,例如区块链是验证是不是进行计算了,传统的验证码是用来验证是不是机器人。
对于攻击而言…它可不会管验证不验证的。 #10 说的例子就是一个典型,别人压根本就不做俯卧撑,只是把你大厅占满。 |
28
xieqiqiang00 OP @Aoang 对于抗攻击服务的提供商,他们的大厅可以认为是无限大的(尤其是 cloudflare 这种),服务商把他们拦住不让进业务就是他们的使命
|
29
cwyalpha 2021-07-03 06:08:15 +08:00
不如改成访问前必须挖个 b 挖到才让你上
|
30
xieqiqiang00 OP @cwyalpha 技术上是差不多的
|
31
qbqbqbqb 2021-07-07 13:27:45 +08:00
以前是有的。臭名昭著的挖矿脚本提供商 CoinHive (现在已经倒闭),以前就提供过一款 PoW 挖矿验证码,UI 很像 reCaptcha,但它不区分人类和机器人,而是要求客户端的浏览器给站长挖几秒钟矿才能放行,不是直接阻挡而是通过消耗爬虫的计算资源来阻止爬虫,同时站长还能获得挖矿收益。这款产品后来与恶意挖矿脚本一样被一并封杀了。
|
32
xcstream 2021-07-19 17:29:09 +08:00
其实那东西就叫验证码
|