[网页插件] hu60bot: 立即与openai 对话
『回复列表(118|显示机器人聊天)』
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。
@rkonfj,我还有一个建议,你可以在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'];
@rkonfj,这里达到了限速,所以没有人可以认证通过。顺便一提 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
}