网站能否在被访问之前加入一段挖矿脚本,大约运行个几秒钟,达成一定的工作量证明才能打开。 但是关键是* 挖矿能否在这么短的时间做出工作量证明?* 如果可行的话我觉得是一种防止 DDOS 的好手段,你 D 我,我就拿收入,这样? 希望有懂的人解答一下
1
ohao 2020-04-29 10:05:58 +08:00 6
弟弟,先搞清楚什么是 DDOS 在来发帖
DDOS 攻击模式是大流量堵塞端口,根本和访问没半毛钱关系 最接近你说的攻击,是 CC 攻击 但是 CC 是不停刷页面,根本不关心访问的内容,顺时并发让 Web 服务的软件宕机超负载而已 所以你在说的是什么? |
2
nguoidiqua 2020-04-29 10:09:08 +08:00 via Android 12
看来 v 站越来越多非技术人士了
|
3
villivateur 2020-04-29 10:10:20 +08:00
别人 DDOS 你的时候,根本就不会去执行脚本,甚至可能连 HTTP 协议都用不上,直接堵塞你的 IP 层
|
4
dapang1221 2020-04-29 10:12:47 +08:00
你说的这个只能用一个新协议去取代 http 协议,让工作量证明发生在访问之前,否则 js 挖矿人家又不是执行 js 。。
|
5
u6pM63mMZ34z32cE 2020-04-29 10:23:55 +08:00 2
你见过 curl 会执行脚本的吗?
|
6
wangxiaoaer 2020-04-29 10:25:58 +08:00 3
楼主,你跟川普是什么关系?挺有想法的,我喜欢。
|
7
yukiloh 2020-04-29 10:32:04 +08:00 via Android
其实没了解过那些入站要等几秒的我也不知道发生了啥
|
8
silvernoo 2020-04-29 10:32:19 +08:00
人家估计不会用浏览器 D 你
|
11
ohao 2020-04-29 10:44:24 +08:00
@koswu
现阶段,真.大流量 CC 攻击应该算是无解的 (金盾也不行,除了不停封 IP) 谁告诉你 Cloudflare 没页面的? 5 秒盾就是 CC 的防护 那个返回的就是页面 他只是机器多 带宽足 防火墙规则 优化的厉害而已 扛 DDOS 洪水 CF 完全靠他的带宽做流量牵引就能扛住 如果你免费版 AB 测试也能 502 的 CC 攻击 就是模拟用户请求页面 注意是”请求“ 不是”访问“ 请求到就算完成攻击 比如你 8G 内存 部署 NGINX 静态页 并发承载 1W 如果有 11 台肉鸡 CC 攻击你,每个肉鸡并发 1000 个请求 请求 1.1W 次 你 NGINX 就处理不了请求 挂起 然后网站变慢 直到访问不了 Web 服务你首先是要返回内容 无论这个内容是什么 哪怕默认页 或者 js 文件链接 都是目标而已 |
12
koswu OP @ohao 一开始返回的不是只有 5 秒盾吗,比如我有一个 web 页面,如果访问需要消耗 sql 性能,我只返回一个静态页面,是不是就可以把这个交给 CDN 来处理了,而真实的主机就不受影响
|
13
Xusually 2020-04-29 10:47:21 +08:00
额。。。楼主这最多算是防采集和非正常用户的浏览器访问?
|
14
eason1874 2020-04-29 10:55:35 +08:00
什么 5 秒盾,我不渲染页面你怎么执行脚本。
|
15
scarleast 2020-04-29 11:04:10 +08:00
网页挖矿,是需要浏览器执行 js 脚本的。
CC 是请求,不是访问,肉鸡不会执行 js 脚本。 我想问下,整个环节当中,是谁执行了 js 脚本能让你有收益? |
16
crab 2020-04-29 11:14:01 +08:00
DZ 就有这类的功能,开启后要回答验证码才可以进入论坛版面或者帖子。
|
17
ohao 2020-04-29 11:31:27 +08:00
@koswu
是的,这个你理解的没错,后端主机确实不影响 但是 CDN 的费用你计算没? 你需要支付很高的费用 如果是阿里云那类 还会需要你买防护包 这个问题就变为钱可以解决的事了 你说的挖坑防护的想法 这个想法从起点 适用的场景就错了 其他的你还是这么理解我真没办法解释了 举个例子 你有一个 3 进的房子 1 号门 2 号门 3 号门 你说的所有行为都需要在 3 号门里才能做 但是 别人锁的是你的 2 号门 在你之前 这样能理解吗? 你先了解下基础的知识 就知道咋回事了 你不了解基础的 怎么解释也不能理解的 5 秒盾不仅仅是你看到的那样 后端还有个验证过程,包括特征码 reqid 浏览器 cookies IP 操作系统等等 而且这个数可以突破的 你可以搜索 cloudlfare bypass 很多开源库支持 |
18
koswu OP @ohao 我懂,我这个想法也没想过是用来做流量防护的,因为静态的 CDN 可以扩容,你说要很多钱,那至少花钱就能解决,如果是后端主机有问题怕是花钱都不好解决,你得重新设计架构才行咯
我只是想到,可以做这么一个要消耗一点计算资源的验证以后才能访问到后端主机,然后既然要消耗计算资源,不如拿来挖矿可不可行 |
21
learningman 2020-04-29 12:05:53 +08:00 via Android
先去了解 7 层,再去看一下 HTTP 。最后学一下 js 。
然后你就会自己把这个问题收回去了。 已经有这么多人告诉你,你概念理解有问题。你还在抱着自己的观点不放。 |
22
learningman 2020-04-29 12:06:07 +08:00 via Android
你真的知道 cdn 是个什么东西吗?
|
23
xiaoxiuaoliang 2020-04-29 12:07:22 +08:00 via Android
没有人比我更懂 ddos 了 哈哈
|
24
jugelizi 2020-04-29 12:09:57 +08:00 via iPhone
你是重新定义了 cc
|
26
imdong 2020-04-29 12:11:57 +08:00 3
不太清楚自己的理解对不对,也不知道下面的比喻对不对。
假设一家咖啡厅可容纳顾客 100 位,同时接受点单 3 位。 DDoS 攻击:叫 >100 个打手去咖啡厅堵着; CC 攻击:叫 10 个人轮流去吧台点单,但不付钱,点完就跑。 楼主工作量证明:点单需要先答一份问卷调查。 工作量证明时 CC 攻击:快给老子拿一张卷子,老子要答题,然后转身就走了... 工作量证明优化:入口处自取问卷,点单时提交问卷。 优化后 CC 攻击:到入口处不停的拿卷子去卖废纸... 再优化 CC 攻击:拿了卷子,随便划两下,拿到吧台去要求点单,然后跑路。 |
27
ohao 2020-04-29 12:14:37 +08:00
@koswu
” 网站能否在被访问之前加入一段挖矿脚本,大约运行个几秒钟,达成一定的工作量证明才能打开。 “ #1 我忽然想起来 主流浏览器 /杀毒软件 都基本禁止挖矿类脚本 你这一开始就 ”卒“ 掉了 其他都不用考虑了 #2 从用户体验来说 这种网站 除非 12306,或银行,大家没的选 否则都会直接黑名单 想法很好 但是太脱离实际了 |
28
imdong 2020-04-29 12:16:39 +08:00
工作量证明用来防机器人爬虫 /骚扰,倒是可以的,就是 JS 的执行效率吓人,随便用其他语言实现,效率会高很多。
比如发帖页面加入这个工作量证明,发帖时检查一下,是没毛病,但是机器人实现了这个,恐怕挡不住啥... |
29
koswu OP |
32
learningman 2020-04-29 13:11:21 +08:00 via Android
我如果想搞崩你的服务器,最简单的方式就是直接堵死你的端口,我甚至连你这个端口上在跑什么都不需要知道。
你这个有用的场景只限于攻击者的攻击能力有限,甚至都不能够打满你的带宽,但是说实话基本不太可能吧。 想挖矿直说,别找理由。 |
33
koswu OP @learningman 至少这样搞的话相当于把问题转化为了一个拼流量的问题,扩容静态页面的流量总比扩容动态页面简单吧
还有,我不挖矿,没有利益相关,我只是想到既然要有工作量证明,应该能够* 顺便 * 挖矿而已,纯脑洞 |
34
q1angch0u 2020-04-29 13:25:09 +08:00
现在的 cdn 不就是这么做的吗……您应该把标题改为,如何将 cc 转化为 ddos
|
35
koswu OP @q1angch0u 可是 cc 就是 ddos 的一种呀,cdn 我已经不敢用这个词了,不然又要有人说我不懂乱说了
|
36
eason1874 2020-04-29 13:53:43 +08:00
@koswu 根据你补充的内容,你所说的是防御 CC,而不是防御 DDOS 。这玩意儿在稍微有一点规模的网站都有了,一般刷新频繁一点就会要求你验证,验证方式通常是输入验证码。
利用验证过程赚钱的也有,谷歌的验证码项目 reCAPTCHA 就是利用用户输入验证码去做人肉 OCR,把旧书扫描图片分割成小图给用户当验证码输入,然后根据多个用户输入的结果去分析得出对应的文字。 防 CC 成本也不低的,成功防御的前提是你的前端服务器得扛住所有攻击请求,因为前端要负责发放、验证 Session 和验证码,所以除了带宽要大,计算量也不能低。 |
37
koswu OP @eason1874 我知道很多网站都有了,所以我最开始相问的是,挖矿能否拆分能那么小的单位进行工作量证明的单位
结果楼歪得全部在说这不是 ddos |
38
way2explore2 2020-04-29 15:32:41 +08:00
嗯,我就不讨论 DD 和 CC 了,因为前边已经大量被讨论,有些过于严苛,题注可能感觉不舒服。
我想说的是别的币我不知道,但比特币绝对不行, - 比特币的奖励周期是十分钟!!!!!!!!!!!!!!!! 另外一点, - 即使你自己设计一款区块链加密货币,调整到 0.5s ,你也几乎不可能 - 因为不是只有你一个人在挖,单用户单 brower 的算力几乎可以忽略不计 于是乎,最终你的脚本只能沦为,侵入式脚本,在网站上骗用户的算力,给你自己挖矿。 当然如果你只想要工作量证明。可以,运行这个 ``` for (let i =0; i< 999999999999999999999999999999999999999999999;i++){ console.log('a wu'); } console.log('I did it, I can visit the page now'); ``` |
39
mizzle 2020-04-29 15:44:13 +08:00
理论上应该是可以的,通过降低挖矿难度,比如运算结果要求 128 位中前 100 位为 0,那么你要求前 60 位为 0 即可通过,找答案的算力要求降到挖矿的 1/2^40,来让用户可以在小片时间算出来。
然后从这些结果中找是不是有天选之子提供的答案有前 100 位为 0 的,有 ( 1/2^40 * 访问量) 的几率挖矿成功哦。 |
40
dorothyREN 2020-04-29 15:55:39 +08:00
在攻击方会执行你的脚本的时候你这个想法才会成立,你猜 cc 攻击方会执行你的脚本吗?
人家根本就不需要你返回的内容,人家只要把请求发到你的机器上攻击就算完成了。 |
41
cigarzh 2020-04-29 18:30:09 +08:00
知道 Hashcash 么朋友?
|
42
DoctorCat 2020-04-29 18:51:57 +08:00
|
43
blackcurrant 2020-04-29 18:55:56 +08:00
@koswu #37
挖矿可以拆分成小目标的,了解下矿池就知道了。就算算力再低也可以接入矿池进行挖矿。 |
44
wisdom 2020-04-30 07:58:42 +08:00
CC 攻击已经有人这样搞过了,DD 不属于这个范畴。
|
45
xcstream 2020-04-30 13:32:13 +08:00
dd 只扔给你一个数据包,你返不反回没区别
|
46
legiorange 2020-04-30 16:00:33 +08:00 1
说几点:
1.做程序的都知道可以通过 Redis 做缓存层,把热数据缓存,不存在所谓的大量 sql 执行的问题。 2.对主机资源的耗尽,除非你增加物理设备,否则加上 5 秒盾,流量防护也是没办法的,CDN 挂掉会直接打真实 IP 。 3.你所谓的工作证明很可能会拿来骗自己,因为真的一点儿用都没有。 楼主的出发点很好,但是和我一样缺乏基础知识,如果基础牢固的话可能会有更好的想法吧。 |
47
no1xsyzy 2020-05-04 02:46:22 +08:00
把 CC 降级成 DDOS ?
广义 DDOS 莫不是说的 DOS 攻击 而且这和网站嵌入挖矿脚本有什么区别 另外,您大可直说:“不好意思,我不接受高贵的 uMatrix 用户”。 |
48
RadishWind 2020-05-05 07:44:06 +08:00
这个在 coinhive 的验证码已经有了,不过体验特别不好
|
49
myqoo 2020-05-06 10:54:49 +08:00
“CC 攻击” ( challenge collapsar )貌似只有国内才有这种叫法,正规应该叫 L7 DDOS 。
|
50
myqoo 2020-05-06 11:02:22 +08:00
思路没问题,也用不着 wasm,用 webgl 更快。可参考: https://www.v2ex.com/t/347005
但用 hashcash 的模式其实不合理,攻击者用矿机之类的硬件比浏览器快几万倍,还是可以制造大量垃圾请求。其实有更好的算法的。 |