大屌们,如何动态生成 http 的请求路径 ??为了防黒产刷网站接口(不想买验证码服务,穷

2023-01-14 13:37:08 +08:00
 godblessumilk

如题,验证码服务让我太感动了,他不止抢钱(调用一次 api 就几块钱),抢用户好感度,还给我送个时不时会被黒产攻破的验证码

由于没有检索到动态生成 http request url 的成熟方案,我目前想到的粗暴办法,是将整个网站用服务端渲染,服务端分发网站内容之前,用一个随机数算法,同一个接口,给每个用户生成不同的 request url 。

类似于 piao 客 和皮条客为了 piao 女昌 交易不被发现,piao 客 想见 女支女,只能每次都由皮条客告诉 piao 客 去找 女支女 的路线怎么走。

post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。

在数学的代数学上,这些动态参数被称作“元”。

学过初中数学都知道,二元一次方程会比一元一次方程计算困难,

网站和黒客对抗的过程,就是比赛 出数学题、解数学题 的过程,只要网站的数学题出得够难(例:用牛逼的加密算法),黒客破解该数学题的成本大于收益,那黒客就不会闲的蛋疼来搞了

注:本人是一名 web 开发,目前的常用技术栈为 Vue.js + python ( Flask 常用) + Nginx + docker + Linux ,所以希望大屌们能推荐一个开源的 python 包让我快速实现这个需求!!!!

1513 次点击
所在节点    信息安全
15 条回复
blankmiss
2023-01-14 14:43:25 +08:00
那不有逆向你前端 js 的操作,不应该从限流接口来做处理吗,针对接口进行熔断或者降级
rev1si0n
2023-01-14 15:54:09 +08:00
简单说一句:不可能的事情,总有办法可以刷你。
godblessumilk
2023-01-14 16:07:12 +08:00
@rev1si0n 只要成本够高,收益够低,黒铲就盯不上我
tomato96
2023-01-14 17:32:19 +08:00
post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。
——————————————————
为什么非得用 URL 做第二个参数呢,body 或者 query 带上一个随机生成的、每个用户都不同的 code 标识不就行了?吗?
enrolls
2023-01-14 20:47:41 +08:00
参照微信,url 加密,解决下一个地址问题; ip 限流解决速度问题。还有什么问题?
join23
2023-01-15 08:31:59 +08:00
根本不是问题啊?私人站还是公司的?性质是易招黑客体质?有巨量机密?别意淫了,你想什么方法都可以,但是要以事实为依据,私人的,自己爱怎么设计都行,反正提高自己水平。公司的,你提出实际问题后由公司决策,担心钱,根本没有办法解决。没有大仇的,黑客不可能盯上你。
IvanLi127
2023-01-15 09:39:40 +08:00
没必要,url 路径和查询参数与请求体一样,都是入参,加 token 效果是一样的。动态变化的 url 只能让他们找你接口麻烦一点点。。。多搞几次也能发现规律。。。要是他直接模拟点击,接口啥样都无所谓。。。所以建议在前面套低成本的人机验证,减少高成本人机验证被刷的风险
Herry001
2023-01-15 12:11:38 +08:00
这玩意有啥用……你要不研究下 Selenium ?不用验证码这货基本横着走。
公司项目找公司报销验证码,个人项目上 google recaptcha ,免费足够。
godblessumilk
2023-01-15 13:18:22 +08:00
@Herry001 Selenium 搞群控脚本是吧,很刑噢
godblessumilk
2023-01-15 13:28:46 +08:00
@IvanLi127 起码模拟真实用户操作这一步,黒客成本就已经上去了。

这个问题的本质可以归纳为:如何区分 [真实用户] 还是 [机器用户] 。

我目前想到有另一个办法: [真实用户] 是有作息时间的, [机器用户] 普遍没有作息时间,机器可以 24h 不睡觉。用这个特征也能拦下一部分。

另外 [真实用户] 有现实世界的公民身份证,注册账号时强制实名认证,这里也能拦下一批 [机器用户]
godblessumilk
2023-01-15 13:30:27 +08:00
@enrolls 黒产用群控脚本慢速请求,模拟真实用户,你怎么给 ip 限速?
edis0n0
2023-01-23 12:27:37 +08:00
你知道现在大学生劳动力有多便宜吗? 2captcha 之类给爬虫打验证码服务都不用 AI 用大学生了,官网介绍 All captchas are solved by workers, that's why 2captcha can bypass all humanly readable types of captchas. 你防的了机器我就上更便宜的真人
xmrvabc2
2023-01-29 18:45:16 +08:00
你不是转了安全岗位吗,又做回开发了,还是开发香哈
enrolls
2023-02-08 15:17:27 +08:00
@godblessumilk 基于你的回复,反问你,你怎么知道 TA 不是真实用户?是一堆群控?

真要干这点的话,复杂得很,基于你的业务来思考,不是黑哥的成本问题,是你的投产比问题。

来点简单点解决:接入 cloudflare 使用 challenge ,manage challenge ;参考知乎简单的拦截是怎么做的?

来点你都要怀疑要不要做的:click trap 针对 fuzz ;参考微博,小红书,淘宝,知乎是怎么做的(跟用户系统设计有关),我理解下,大厂都有一个共性,微博最显著。支付宝也有,也是用在判断上。
godblessumilk
2023-02-08 15:49:47 +08:00
@xmrvabc2 现在在做安全开发,紧张又刺激,开发冷兵器呢

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

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

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

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

© 2021 V2EX