刚看了一份api验证流程
客户端提交账号信息(用户名+密码)到服务端
服务端验证成功,返回AccessToken给客户端存储
3.访问受限资源时,客户端带入AccessToken就可访问。
其中第一步如果是被抓包的连接请求是不是也会返回AcessToken
返回的AcessToken被抓包后也被恶意请求的连接带上是不是也会通过验证
主要是不知道被抓包后获得的这个相同的AcessToken也用来请求服务器是怎么样验证的
请大神指点,这个AcessToken是怎么起到作用的,起到了什么作用,给点细节
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
个人喜欢用Json Web Token,楼主可以去查查相关的资料
AccessToken?以前做微博那帮人抓取的经常去找weico的key来用...
没什么作用,只是为了在别人不知道你的accesstoken机制的时候进行一步防范。抓包知道这回事以后,提交是可以自己修改的。进一步是需要加入一些参数签名方法,或者是参数整体加密的方法来防止篡改。
客户端和服务器会约定加密方式,AccessToken也会过期。
你把AcessToken看成一个常规web应用中登录以后session中存储的user_id,就算抓包抓到了,他也只是获得了一个用户的账号密码以及用户的所有信息,类似个人用户密码被盗,不至于拿到整站数据这种风险
AcessToken被抓包后也被恶意请求的连接带上是不是也会通过验证?
这个要取决于你的AcessToken生成规则,如果是简单的md5(user_id)那肯定不行,这样每个用户每次生成的AcessToken都一样了,所以需要保证每次生成以后响应给客户端的都是不一样的,然后存储在redis这种数据库中key=AccessToken,value=user_id,如果做的极致一点应该是要有失效时间的,失效了就重新发起请求获取AcessToken
关于验证问题,web客户端存cookie里,APP客户端存本地数据库,每次请求都带上,然后每次比对请求过来的accesstoken在redis中找对应的user_id值,然后服务端取到user_id进行数据获取操作
这个是基本的一个逻辑,其中应该还会牵涉业务,要根据实际情况来进行调整了