美文网首页
浅谈访问接口的数据安全性

浅谈访问接口的数据安全性

作者: 嘻洋洋 | 来源:发表于2022-01-28 16:38 被阅读0次

数据接口的访问有时常常和和身份唯一合法验证有关。

1.通过session来控制

1.1 控制方式

传统做法通过session识别身份,具体步骤

  • 1、通过过滤器拦截请求,判断用户session是否存在。登陆等模块不需要验证身份的特殊处理。
  • 2、通过拦截器拦截方法,判断用户session是否存在,不需要验证登陆加载,通过auth自定义注解区分。此法优于1。

以上两种方法适合简单早期的应用,如遇到应用系统集群,需要解决session共享的问题。又如接口同时提供对外访问。总不能特殊处理再重写一下吧?

1.2 session共享方式

spring boot项目使用tomcat服务器实现session共享的方式,使用redis存储session对象值
(1)添加依赖

        <!--使用redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--session 共享 -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

(2)在yml中配置redis

spring:
    redis:
        password: 123456
        pool:
            max-active: 21
            max-idle: 8
            max-wait: -1
            min-idle: 0
        sentinel:
            master: sentinel-name
            nodes: 192.168.1.2:6389,192.168.1.3:6390,192.168.1.4:6387
        timeout: 1000

此处配置完全是spring-boot-starter-data-redis相关配置参数,跟spring-session-data-redis无关。后者依赖前者
(3)在项目启动类上添加如下注解@EnableRedisHttpSession
通过@EnableRedisHttpSession注解开启Session共享功能

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds= 3600, flushMode  = FlushMode.ON_SAVE)
public class RedisCacheConfig
{
}

注解的主要作用是注册一个SessionRepositoryFilter,这个Filter会拦截到所有的请求,对Session进行操作

2.通过请求中携带cookie或者head身份信息

思路一:

  • 登陆成功后,服务器产生token(生成规则自定:IP+浏览器类型+时间)令牌,返回到客户端token和用户ID(加密)。服务器把toke 对应的用户信息存放session中。
  • 拦截器接收token,通过session从服务器中获取相应的用户信息,如果没有获得(session失效或者服务器不同),则根据用户ID后台自动登录,用户信息再放到session里面。
    重点:请求cookie中携带token和id

思路二:

  • 登录成功后,服务产生token(生成规则:时间 )令牌,令牌存放在redis缓存并且存放在登录信息表。令牌通过head返回。
  • 客户端访问服务器,拦截器接受token,解析token并验证是否过期,从redis读取token

相关文章

  • 浅谈访问接口的数据安全性

    数据接口的访问有时常常和和身份唯一合法验证有关。 1.通过session来控制 1.1 控制方式 传统做法通过se...

  • 整理记录App开发常用功能

    1.网络请求安全性 目的 确保接口都是合法的被访问,而不是外部人员通过接口测试工具(例如postman)进行访问。...

  • API接口安全性设计

    API接口安全性设计 接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据...

  • Python 获取url分页数据

    通过实时访问API接口获取json数据落地至本地,分享一个小脚本。 API访问数据接口格式为:数据访问结构 从数据...

  • 19. 基于 Node 实现 JSONP 请求

    JSONP 原理 由于浏览器的安全性限制,不允许 AJAX 访问协议不同、域名不同、端口号不同的数据接口,浏览器认...

  • 安全性和访问性控制测试

    安全性和访问控制测试程序应用侧重于安全性的两个关键方面 ①、应用程序级别的安全性,包括对数据或业务功能的访问。 ②...

  • CocosCreator工具类补全计划

    Http工具类 get 方式访问数据接口 post 方式范围数据接口 UserData本地数据类 localSto...

  • 2020-07-02

    浅谈 浅谈模块设计宏内核 浅谈接口设计Flags 浅谈稳定性设计重试 浅谈人员业务结构设计矩阵式 浅谈接口设计 |...

  • 数据源变更-需开发提供

    一、内容 • 新数据源名称&旧数据源名称• 接口访问文档(不同环境访问地址&token)• 受影响接口,整理一份(...

  • Spring JDBC

    统一的数据访问异常体系 问题:DAO模式下,数据访问接口需要抛出异常,如果异常特定于某种实现,那么使用这个接口的代...

网友评论

      本文标题:浅谈访问接口的数据安全性

      本文链接:https://www.haomeiwen.com/subject/cxyxvftx.html