4

web系统怎么防止用登录后的token程序模拟请求接口

 2 years ago
source link: https://www.oschina.net/question/4440732_2325061
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

web系统怎么防止用登录后的token程序模拟请求接口

独翼马车 发布于 02/07 17:08
阅读 1K+

web系统,尤其是前后端分离的系统,用户登录之后,F12可以直接看到token,拿到token可以轻易的用程序模拟请求服务端接口,前后端不分离的系统是不是没有这个问题?前后端分离的系统怎么解决这个问题?

wad12302
前天 20:42

这个不是问题,及时是 不分离 以前的session的 同样存在sessionid 

letwang
02/08 08:41

都有此问题

  • 前后端不分离的WEB,暴露少很多
  • 前后端分离的WEB,暴露很多Api,容易被推测出来数据库和架构

加随机盐或者通过请求协议等来预防,不过都没卵用,只是把模拟门槛相对提高了。

发财火车
02/08 10:40

只能短信验证吗,扫码登录,登录后,token,缓存客户端ip,若果ip换了,强制token失效

发财火车
02/08 10:44

对于同一个token,可以访问N个接口,这个本身是设计的问题,请求接口全部改成post,必须对参数校验,对参数进行加解密验证签名,这样可以有效的防止,

pyboy58
前天 15:57
最好还是限制一下,一个token可以访问哪些内容,这个用户的权限有多大?
jams_n
昨天 09:02

如果不是黑客攻击了你的电脑,那么首先得别人能堂而皇之的拿到你的电脑(或者来到你的电脑前正好你的电脑打开了,同时已经登录了你的系统),然后大摇大摆的对你已经登录的浏览器进行F12调试,然后拿到你的token.....试问,你是站在旁边看着别人做这一切?还是你是随便把电脑丢大马路上?你的token真有这么容易被人拿到吗?

jams_n
昨天 14:37

看了评论,我真的又想再说几句,有一种对技术的过度安全化。感觉有一种我为了防止贼偷我的钥匙去开我的锁偷我东西,那我就每隔一个小时换一把锁,这样即使小偷拿到了我的钥匙,我换了锁他也开不了(这不是搞笑吗)。技术最终的使用者也是人。使用者没有安全意识,你技术再怎么牛都防不了。相反你为了防止token被别人获取,加各种措施,浪费资源又增加服务器的负担。这是杀敌一千自损八百!

ducat7
02/08 09:51

你是预防“模拟多次请求”吧?

那就每次请求都得用新的token。

ducat7
昨天 10:26
回复 @pyboy58 : 1、你生成个token很慢吗?不行就加按需生成策略:在一定时间内,该token请求次数过多时,就启用新token。或,一定时间内不能访问。 2、你的token放在数据库里?你不会放到Redis、时序数据库里吗?
pyboy58
前天 15:56
你这效率多低,数据库压力多大?
发财火车
02/08 10:45

还有一种办法,就是接口实行订阅制,跟token进行授权,而不是一个token,可以访问所有接口,防止探测,暴力破解

偶像派程序猿
前天 15:37

用户登录之后拿到token,说明这是个正常的用户,模拟请求就跟正常访问没有什么区别,这根本不是问题。如果是限制接口权限那是权限相关的问题。

kingMH
昨天 17:07
这才是正解
sprouting
昨天 09:14

没法避免,只能提高对方的模拟成本,所有的权限系统的本质都是用户拥有某个权限标识,通过这个标识来验证是否通过,当然为了更安全,我们可能会对登录期间的IP,浏览器指纹等进行验证,这些信息发生变化则强制登录,如果是安全性更高的系统,都会要求安装一些插件,这一块就不熟悉了


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK