求救,怎么解决网站被恶意盗刷

7 月 12 日
 sxliusir

我做了个简单的生成图片网站,有游客免费生成的功能,每个 ip 只能免费生成几次,我发现有些大批量请求是同一个人生成的,但是 ip 却都不同

2328 次点击
所在节点    问与答
22 条回复
shuiduoduo
7 月 12 日
加盾
BlueSpace4512
7 月 12 日
加 cdn 拦 bot 、再加浏览器指纹关联
googlefans
7 月 12 日
@BlueSpace4512 拦 bot 不把 google bing 等正规的爬虫也拦住了吗?
orion1
7 月 12 日
你咋知道是同一个人生成的,把原理告诉 waf
sxliusir
7 月 12 日
判断同一人是他的 prompt 很相似,时间也很相近,大量的请求
sxliusir
7 月 12 日
加什么盾呀,详细说说呢
humbass
7 月 12 日
绑定手机号或者微信号 每个号限制就行了。
potatowish
7 月 12 日
生成结果打上大大的水印,登录可保存去除水印版本
davidyin
7 月 12 日
加 recaptcha
cnrting
7 月 12 日
改成必须登录
foryou2023
7 月 12 日
国内搞成手机号登录,国外搞成谷歌邮箱登录。
idblife
7 月 12 日
让 fable5 解决
nc
7 月 12 日
加上 fingerprintjs 检测,纯客户端的,只能防普通用户薅羊毛。更彻底的是直接把机房 IP 都屏蔽掉,可以用这个库: https://github.com/NetworkCats/Merged-IP-Data
EvanClausen
7 月 12 日
判断用户浏览器指纹+CloudFlare Turnstile 。只限制 IP 的话随便一个 IP 池代理就绕过了。
vvong
7 月 12 日
接 cloudflare 走 cf 的代理
打开设置防机器人攻击 设置 Rate Limiting
开启高强度防护
laminux29
7 月 12 日
人家微软、OpenAI 、Google 、Anthropic 对这种事情都没办法,你觉得你能怎么办。
billccn
7 月 13 日
在开 WAF 的基础上可以试试:
起一个 embedding 数据库,把 prompt 都跟里面搜一下,把最相似的拿出来用个简单本地模型分析一下,凡是同样请求的变体的把整个 IP 段的免费请求数将为 0
Rache1
7 月 13 日
@googlefans 这些正规 bot 都有 IP 列表的,如果想要放行,把他们的 IP 段加进去就好了。

比如:

Google:

https://developers.google.com/crawling/docs/crawlers-fetchers/verify-google-requests?hl=zh-cn#automatic

Bing:

https://www.bing.com/webmasters/help/how-to-verify-bingbot-3905dc26
sxliusir
7 月 13 日
感谢大佬们回复,昨天参考评论先加上了 IP+CloudFlare Turnstile 和 cf 的基础防机器人攻击,先观察两天后反馈效果。
sxliusir
7 月 14 日
来反馈结果了,添加了 Ip 限制和 turnstile 校验,上线后 10 个小时,结果如下:


总请求数:148
turnstile_verification_failed:12
turnstile_token_required:6
too_many_guest_generations:4


其中这几个拦截指标的含义
turnstile_token_required 指的是游客请求没带 Turnstile token 。一般是脚本直接 curl 调接口产生。
turnstile_verification_failed 指的是带了 token ,但 Cloudflare siteverify 校验不通过,一般是 token 过期或者携带第一次的 token 再次请求
too_many_guest_generations 指的是游客超过当日免费配额。

总体拦截情况挺好的,但是发现还是有一些没有登录的相同 ip 多次请求记录,还没排查出来怎么产生的,方案不是最终的,最终加固完成会再次反馈详细拦截实现方案。ps:所有的加固方案都是 AI 完成

同时感谢上面大佬提供的思路,
@BlueSpace4512 @EvanClausen @Rache1 @billccn @cnrting @davidyin @foryou2023 @googlefans @humbass @idblife

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1226692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX