除了防止重复提交,token 可以防止对接口的暴力请求吗?

2014-08-06 15:02:37 +08:00
 pp3182429
1. 在调用接口的时候会经常需要token,google后发现是为了防止重复请求;
2. 在返回的网页中嵌入token,很容易被获取到;有没有更高级的设计,可以防止接口被暴力请求?
3. 可以在token中加入表单校验之类的增值功能么?
14968 次点击
所在节点    程序员
26 条回复
Actrace
2014-08-07 18:05:41 +08:00
@pp3182429
主要看你用什么数据库引擎了.
我个人感觉其实最大的一块可能还是来自前端请求的压力,用Token来切割有效请求效果还是不错的.
至于数据原子性提交的问题,MYIASM和InnoDB都支持锁,所以不是个问题,如果是PHP的话,已经自带队列了,同一个的PHP文件的执行请求被客户端多次发起,会阻塞后面的请求,直到这个请求完成处理,当然如果是多个客户端的话,你可能还需要增加一个查询中间件队列这些请求来规避可能带来的问题,不过只要正确运用了锁,基本上都没啥问题.
pp3182429
2014-08-07 18:19:41 +08:00
@Actrace 用的是Nodejs,io应该也是队列,这也是天然队列么?
ryd994
2014-08-08 02:23:40 +08:00
谢谢@xoxo ,学习了
加锁可以解决吗?限制请求频率呢?
Actrace
2014-08-08 09:11:59 +08:00
@pp3182429 Nodejs没研究过...
pubby
2014-08-08 10:48:00 +08:00
@xoxo 可以不用队列,简单上锁就可以保证顺序处理了

最简单的跨服务器锁可以使用MySQL的
GET_LOCK()
RELEASE_LOCK()
IS_FREE_LOCK()
IS_USED_LOCK()
系列函数

(* 需要保证所有业务服务器在上锁时连接的是同一个MySQL服务器)
xoxo
2014-08-09 00:11:38 +08:00
@pubby 再仔细看看我分析的过程你就明白没用的。

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

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

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

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

© 2021 V2EX