zoukankan      html  css  js  c++  java
  • 关于防范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。这么做,是否安全?
  • 相关阅读:
    实现简易赈灾物资发放登记系统---练习
    数据访问-----ADO.NET 练习2
    数据访问-----ADO.NET 练习1
    面向对象(3)继承
    面向对象(2)
    面向对象(1)
    JavaScript 内容串联 ---Document---四、五和正则表达式。
    JavaScript 内容串联 ---Document
    document--操作相关元素(js简短汇总3)
    js--document对象操作内容(js简短汇总2)
  • 原文地址:https://www.cnblogs.com/liangdaye/p/9903290.html
Copyright © 2011-2022 走看看