tmtstudio
V2EX  ›  程序员

大佬们,如何防止 api 被别人恶意调用,目前使用了混淆+wasm+rsa&aes 都防不住

By tmtstudio at 2024 年 8 月 30 日 · 7164 次点击

太难缠了,目测是把 wasm 直接拿去加解密了

23 条回复  •  2024-09-04 19:32:39 +08:00
tmtstudio
   1
tmtstudio  
OP
   2024 年 8 月 30 日
我接口参数和反参都这样了,真是没辙了
param: CBvPwEcAyHmnRQ2VRJ+cTbrPfJothei4nkMFlvqGMZl/xduTNg9VVhWUyF/CrMCnld8OeZZpHaSxp/k4YH/DZvTTge4aCmK7sxR8qPoP+ZHjDaakoC3MiIhkzWbBWwPx4JbKCtc3E/8AMD52IU6bZjBM29zrfS2pawTmSHR+oUY9Jnlucv1mMOC1+/1BWwuSLFQ4bkyPoRsrflJUD9SfQzascADp9bvDAJ/Eh8fvVgT4FSkzqtyQVemopDrG9ntt
code: H2l0TqAcrx+DIc0CW4eGWPSPZRrUHvlWaOaOXjpGQ3Tn79gh6PcwFW3J5KaZUcjOAMpbEgWS5D9i/wtqcNdI6iz0hX0Vmz62wVuxVJUa3ltXOMJk2RMvtoYOVb8Ne+IuSOOr3tMeB4JxmiRB4MNwdUnIXtHWc6z0OxVZ6FuPzrQ=

{"status":1,"info":"\u6210\u529f","data":{"data":"VdAbKxb927LEtIEP6Hgd8820rE2EruZLa0WstR7lWZixMhmYE6TECFTlrci3pSVfeWz1voe7jkb1dAqDdU0mdzS95P+LzgOxImhuh6Dv3vKY8eHRLqgy+K1QsfcaqKxnaMFuVkTgZzJySlhTBZAhAbkqWuBMoaXv8Z6zGan\/pghVc7US2Z2wTiXfPRe4dWxLa3nWH2gIyIDwGj8Wxhxx9DFbxmSQoh6ZFjUz1v12+2LNaoN972OzlOU159e6QmX\/jKP4SVZB3vKi6EdeQynGKwZtuAVN3Am1q\/ayIZp1pbn8B+5PuK09OOTwElCPiAw3fn09l6CzlirCwpV5VJLEU96Cu7pYRLVrIOe5WEhgRbfExqZ+JOqd5Q+OuN6NosUqKW1ZlDHbu3Ha09gu9CyLbw56GcMQA60FCvUNInw4WCbxlOhcASO\/Ye73i1S07ZbeuyGvd3SZMxMd5+H8x95KduEp+IsRCh3DHOz94ORXtA4ivNPgoWuCjhgvHtq6whxBAMnm4Jf\/6MY24mrd9\/0BWQ==","code":"Z2SLbR+9Vz8noEFVL\/eD+XFccTgTJo6Rv53dPiNE0rSweOvoG9+fxZUdMW0dlF63Bche7cAaGPbko1WHel1s8eEBmjTPB1CHCNAep8mHD1wO2\/k\/FpPNhh2gVhKEvZqIqDhVjsT2lNk704RoKBXNsnf4zlxC1O8HoE5wmF45e\/8="}}
huangzhiyia
   2
huangzhiyia  
   2024 年 8 月 30 日
服务端限流 + recaptcha 认证
jsonparse
   3
jsonparse  
   2024 年 8 月 30 日
防重放+限流
tool2dx
   4
tool2dx  
   2024 年 8 月 30 日
加参数签名算法,把签名算法放到服务器 RPC 上来计算,按照一定的调用比例,识别恶意客户端 ID 。

算法不放在本地,这总没办法了吧。
RoyLaw
   5
RoyLaw  
   2024 年 8 月 30 日
限制访问 IP
Ayanokouji
   6
Ayanokouji  
   2024 年 8 月 30 日
上个 apisix 之类的网关,挑一些插件开启
LeeReamond
   7
LeeReamond  
   2024 年 8 月 30 日
不太了解灰产解 wasm 怎么个说法,我感觉 wasm 解 AST 还挺麻烦的,但是也许你硬编码了什么字符串密钥或者接口之类的很好搞出来。

@tool2dx http 无状态,灰产搞客户端那不是要开多少开多少,每次都是新 ID 。。。
fruitmonster
   8
fruitmonster  
   2024 年 8 月 30 日   ❤️ 5
coderxy
   9
coderxy  
   2024 年 8 月 30 日
有的是改内存的, 你再怎么加密它正常用你的客户端去请求你也防不了。
zhenjiachen
   10
zhenjiachen  
   2024 年 8 月 30 日 via iPhone
wasm 不需要反编译,直接使用运行时就可以跑起来了,然后把参数放到接口里面调用就行了
povsister
   11
povsister  
   2024 年 8 月 30 日
专业风控团队都是风险因子收集+模式识别,靠行为模式来打击黑产。

你用的这些方案都只能提高门槛,对于黑产本身来说不算啥。你当下最简单的方式就是,接口调用完之后保留一些供后续审计的数据,做不到在线实时识别的话事后打击也可以。
tmtstudio
   12
tmtstudio  
OP
   2024 年 8 月 30 日
@fruitmonster #8 妙啊,这可以用在 wasm 里鉴权
tmtstudio
   13
tmtstudio  
OP
   2024 年 8 月 30 日
@povsister #11 我这项目还吸引不到黑产,就是一些技术小鬼,现在有了 gpt 谁都能搞一下
hsuehly
   14
hsuehly  
   2024 年 8 月 30 日
我研究过一点,可以交流一下
proxytoworld
   15
proxytoworld  
   2024 年 8 月 30 日
核心是你即使在 wasm 加解密你还是得在 js 端使用 wasm export 出的 abi ,其实目前 wasm 反编译不是很成熟,大概率是把你 js 反混淆了

建议防重放+签名算法,配合服务端限流+环境检查之类的
Lockeysama
   16
Lockeysama  
   2024 年 8 月 30 日
关键字:WAF 、Bot Management
iorilu
   17
iorilu  
   2024 年 8 月 30 日
说明你的站很牛啊, 有人盯上了, 肯定 api 是有价值得
glcolof
   18
glcolof  
   2024 年 8 月 30 日
使用 https 协议,在 api 调用参数里面增加“用户名-密码”或者访问 token 字段,如果服务是收费的,每次调用都会扣费;或者免费服务限制调用次数调用频率。
总不会有人故意泄露自己的用户名-密码或者 token 吧?
jackOff
   19
jackOff  
   2024 年 8 月 31 日
额,你不会是央视频吧?你可以试试找法务解决
EndlessMemory
   20
EndlessMemory  
   2024 年 8 月 31 日
新增一个接口参数,没有带新接口参数的全部返回假数据
sobev
   21
sobev  
   2024 年 8 月 31 日
@fruitmonster 妙啊妙啊
12101111
   22
12101111  
   2024 年 8 月 31 日
wasm 不需要反汇编,可以直接按你的 js 调用 wasm 的方法在 nodejs 这类运行时里直接运行。
真正的加密必须在服务端用用户 id 做运算,wasm 只能当做一种 Pow 的限速器。
wogogoing
   23
wogogoing  
   2024 年 9 月 4 日
@fruitmonster 秒啊!
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 69ms · 3.9.8.5