前后端分离如何保证接口不被滥调用?

2020-08-22 21:11:52 +08:00
 tydl

前端 html js 后端 php 根据 URL 返回 json

接口无需登录,就可以调用

4558 次点击
所在节点    PHP
15 条回复
Hieast
2020-08-22 21:17:49 +08:00
1. 鉴权
2. 验签
3. 限流
hlwjia
2020-08-22 21:17:57 +08:00
没意义

不鉴权的 API 和公开 html 一个意思

怎么你不问防止别人滥访问你的首页
rootzzz
2020-08-22 21:18:44 +08:00
限制调用次数,或者做 token 验证,一段时间内的响应次数等等吧,方法挺多的
shoaly
2020-08-22 21:19:39 +08:00
不能保证不被滥用, 反而是让爬虫更方便了, 之前还要解析 dom, 现在一个 json 搞定 美滋滋
opengps
2020-08-22 21:42:42 +08:00
token 啊,公开的数据有公开的 token
鉴权的数据要有带鉴权的 token
Ptu2sha
2020-08-22 21:47:12 +08:00
字体文件解君愁
拿到 json 没有意义
musi
2020-08-22 22:23:00 +08:00
调用次数多了直接上验证码
Veneris
2020-08-22 22:26:55 +08:00
1.短 token 调接口,长 token 获取短 token
2.token 限时间一定时间内调用次数
3.签名验证机制,v2ex.com/t/699346
autoxbc
2020-08-22 23:39:03 +08:00
就我长期爬接口的经验,100 个网站也没有 1 个对公开数据做保护的
fishCatcher
2020-08-23 00:00:31 +08:00
验证码
supermoonie
2020-08-23 00:25:13 +08:00
接入阿里的滑块,滑动通过放行
fy
2020-08-23 01:11:30 +08:00
关注一下 这个确实头大
dcalsky
2020-08-23 01:53:36 +08:00
要找到区别普通用户与爬虫用户的点。以下是我战斗的经验。

1. user-agent,refer, host 等等
2. 自定义一些复杂的逻辑用 js 生成 cookie 然后后端验证(耐克网站)
3. 限流,限制单个 ip 一分钟可访问次数
4. 自己开发或使用第三方验证码

但是你要记住,无论你的验证机制多复杂,你都无法完全屏蔽非正常用户。用户能访问到的,爬虫一样也可以。
xuanbg
2020-08-23 12:44:20 +08:00
需要鉴权的(一般是后台管理接口)统一鉴权,可以验证身份的必须验证 token,没法验证 token 但可以验签的(开放平台接口)必须验签,连验签都不能做的(如商品浏览、注册登录)就只能限流了。
nathanleeinph
2020-08-23 22:13:37 +08:00
前端不会乱调用 出现这种情况内部沟通或者从技术管理制度里去要求改正

如果是防止外人搞破坏 你们接口加入签名措施即可 这样外人无法伪造参数请求

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

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

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

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

© 2021 V2EX