找到2214个回复 (用户: 老虎会游泳)
@cherrydra,如果
http.NewRequestWithContext(ctx, http.MethodGet, c.fullURL("/user.index.json")不传递IP,nginx显然不知道用户的IP是什么。
@cherrydra,这里达到了限速,所以没有人可以认证通过。顺便一提
udSySELORQDee6_Jxv-YPMEAsAAA已经被我设为无效了,所以公开也没关系。// 获取sid(跨域时禁用cookie) sid := getRequestParam(r, "sid", noCookie) if sid == "" || sid == "udSySELORQDee6_Jxv-YPMEAsAAA" { m.responseUnauthenticated(ws) logrus.Warn("authentication failed: sid not found") return } // 这里达到了限速 res, err := m.hu60Client.GetProfile(context.Background(), sid) if err != nil { m.responseUnauthenticated(ws) logrus.Warn("authentication failed: ", err.Error()) return }
@cherrydra,因为现在的超速都算在
127.0.0.1头上了,所以大家都连不上。把真实IP填充在头信息里,我就可以把限速算在具体用户头上了。
@cherrydra,我还有一个建议,你可以在HTTP请求中添加头信息,把速率限制转移给单个用户。
比如,把用户的真实IP填充在
HTTP_CF_CONNECTING_IP里,然后我在hu60 api里添加真实IP判断。这个头信息的名称要可自定义,因为我不想让别人猜到来伪造IP记录。
/** * 特定IP判定范围 */ $CC_IP_LIMIT = [ // 设置特定IP n秒最多能访问的次数 '127.0.0.1' => 100, ]; /** * 真实IP */ // 无代理时使用 $CC_REAL_IP = $_SERVER['REMOTE_ADDR']; // 采用CloudFlare或百度云加速代理时使用 #$CC_REAL_IP = $_SERVER['HTTP_CF_CONNECTING_IP'];
@cherrydra,达到速率上限之后,会返回这样的页面:
ERRO[2023-03-30T09:57:46+08:00] answerHu60 get chatroom err: error, status code: 503, message: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>刷新不规范,虎友两行泪</title> </head> <body> <h4> 虎绿林第三区交通委提醒您:<br/> 网址千万条,耐心第一条。<br/> 刷新不规范,虎友两行泪。 </h4> 虎绿林低速网络限速10秒内最多访问50次(每秒5次)。<br/> 您在20秒内访问了169次(每秒8.45次),您已超速。<br/> 作为惩罚,吊销您的虎绿林通行证14秒钟,在这段时间内您将不能访问虎绿林。<br/> 您的IP地址为122.9.147.96,违章记录已存档。 请勿反复刷新,否则违章记录将延续。<br/> </body> </html>建议的解决方案:限制单个用户的最大连接数,比如限制为最大10个连接。注意:要按sid判断连接数,不能按uid判断,因为sid转uid要查询虎绿林API。
@cherrydra,我们遭到了拒绝服务攻击,因为@童真再见 的连接速度过快,hu60 API迅速达到上限,返回超速页面,导致后续没有任何人可以连上。
@TabKey9,你说的哪一个?
@hu60bot @ChatGPT @罐子2号 @靓仔 @QA @Chatbot @GPTbot
@无名啊,H265我就没必要用这张卡了,我可以用NVIDIA 3080Ti。
@cherrydra,更新了
@值班电工,https://www.mthreads.com/product/S80
网页上写着4096个MUSA核心
@胡图图,那是markdown代码高亮标记。@cherrydra 没有对会话做markdown解析。