• 关于防范csrf攻击基于token鉴权


    在web开发中,之前都使用cookie + session方式来实现身份认证鉴权。但是现在前后端分离,以及终端有可能不支持cookie的情况下,一般都采用token方式。现在系统设计思路如下: 服务端会生成两个token,一个是认证请求token(accesstoken),一个是刷新token(refreshtoken)。 accesstoken设置过期时间为两个小时,refreshtoken设置过期时间为30天。accesstoken两个小时到期后,客户端会使用refreshtoken来刷新accesstoken。refreshtoken过期后,会重新登录。 具体步骤如下: 客户端输入账号登录成功后或者微信扫描成功,服务端会自动生成accesstoken和refreshtoken返给客户端。accesstoken是根据jwt规则生成。refreshtoken生成规规格就是:时间戳+随机数。然后把refreshtoken作为redis的key存入redis中,aceesstoken作为value。 客户端拿到两个token后保存起来,每次请求带上accesstoken。当服务端返回accesstoken错误时,会自动跳转到登录页面。当服务端返回accesstoken过期时,使用refreshtoken去刷新accesstoken。然后在继续拿新accesstoken请求。 现在有两个问题: 一是,我这么设计思路是否合理,在能有效防范XSS攻击情况下,是否能有效防范csrf等安全攻击?还有没有更好的方式? 二是,如果是账号登录,在请求体里返回两个token,以及微信扫描登录重定向页面时,在URL上拼接上两个token。这么做,是否安全?
  • 相关阅读:
    朱刘算法---有向图的最小生成树
    527D Clique Problem 判断一维线段没有两辆相交的最大线段数量
    Tex中的引号
    DAY 96 flask05
    DAY 95 flask04
    DAY 94 flask03
    DAY 93 flask02
    DAY 92 flask01
    DAY 91 爬虫05
    DAY 90 爬虫04
  • 原文地址:https://www.cnblogs.com/liangdaye/p/9903290.html
Copyright © 2020-2023  润新知