松鼠乐园 松鼠乐园
  • 注册
  • 登录
  • 首页
  • 快捷入口
    • Vue
    • Tensorflow
    • Springboot
    • 语言类
      • CSS
      • ES5
      • ES6
      • Go
      • Java
      • Javascript
    • 工具类
      • Git
      • 工具推荐
    • 服务器&运维
      • Centos
      • Docker
      • Linux
      • Mac
      • MySQL
      • Nginx
      • Redis
      • Windows
    • 资源类
      • 论文
      • 书籍推荐
      • 后端资源
      • 前端资源
      • html网页模板
      • 代码
    • 性能优化
    • 测试
  • 重大新闻
  • 人工智能
  • 开源项目
  • Vue2.0从零开始
  • 广场
首页 › 安全 › 你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

迦娜王
2年前安全
499 0 1

看起来好像前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 。这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 。下面我也是根据自己的一些经历和经验说下自己的一些心得 。

API的设计中,主要考虑两大方面的问题 :

  • 防止API被恶意调用
  • API通信中数据加密的问题

接口的安全性主要围绕token、timestamp和sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:

Token授权机制:

用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。

时间戳超时机制:

用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间差大于一定时间(比如5分钟),则认为该请求失效。时间戳超时机制是防御DOS攻击的有效手段。

签名机制:

将 Token 和 时间戳 加上其他请求参数再用MD5或SHA-1算法(可根据情况加点盐)加密,加密后的数据就是本次请求的签名sign,服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。签名机制保证了数据不会被篡改。

Api有哪些安全问题?—-http接口—前后端分离mvvm

  1. 数据被抓包窃取
  2. 数据被调包篡改
  3. 数据被爬取泄露
你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

数据加密

  1. 对称加密:DES、AES
  2. 非对称加密:RSA
你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

安全够了吗,还有哪些要做?

加密解决了数据上行的安全,然而黑客,直接抓密文来提交,怎么办?

你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

接口签名

你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

安全够了吗,还有哪些要做?

接口签名,仅仅依靠参数顺序的排列组合,安全强度不够

你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

身份认证—–token令牌

Token授权机制:用户使用用户名密码登陆后,服务器给客户端返回一个Token,并在服务器中缓存此Token。后续服务器收到请求后进行Token验证,若Token不存在,则说明请求无效

你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势
你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

身份认证的封装—–cookie隐式携带token

  1. 使用tokenFilter统一处理
  2. 登陆成功,服务器直接种token到cookie中
  3. 客户端请求时,需要送token值的加密串,到服务器
你的API还在裸奔?阿里大师带你领悟安全的代码正确姿势

总结

安全是一个永恒的话题,随着各大网站全站https的推进,安全也越来越被重视。签名设计大家必须有,HTTPS希望大家有。

API安全
1
一幅漫画带你了解:什么是ZooKeeper?
上一篇
JS错误监控篇
下一篇
评论 (0)

请登录以参与评论。

现在登录
聚合文章
Servicios profesionales Organizaciones
1年前
在Gitee收获近 5k Star,更新后的Vue版RuoYi有哪些新变化?
1年前
vue3.x reactive、effect、computed、watch依赖关系及实现原理
1年前
Vue 3 新特性:在 Composition API 中使用 CSS Modules
1年前
标签
AI AI项目 css docker Drone Elaticsearch es5 es6 Geometry Go gru java Javascript jenkins lstm mysql mysql优化 mysql地理位置索引 mysql索引 mysql规范 mysql设计 mysql配置文件 mysql面试题 mysql高可用 nginx Redis redis性能 rnn SpringBoot Tensorflow tensorflow2.0 UI设计 vue vue3.0 vue原理 whistle ZooKeeper 开源项目 抓包工具 日志输出 机器学习 深度学习 神经网络 论文 面试题
1
相关文章
HTTPS原理看了很多,这个是最清晰的
松鼠乐园

资源整合,创造价值

小伙伴
墨魇博客 无同创意
目录
重大新闻 Centos CSS Docker ES5 ES6 Go Java Javascript Linux Mac MySQL Nginx Redis Springboot Tensorflow Vue Vue2.x从零开始 Windows 书籍推荐 人工智能 前端资源 后端资源 壁纸 开源项目 测试 论文
Copyright © 2018-2022 松鼠乐园. Designed by nicetheme. 浙ICP备15039601号-4
  • 重大新闻
  • Centos
  • CSS
  • Docker
  • ES5
  • ES6
  • Go
  • Java
  • Javascript
  • Linux
  • Mac
  • MySQL
  • Nginx
  • Redis
  • Springboot
  • Tensorflow
  • Vue
  • Vue2.x从零开始
  • Windows
  • 书籍推荐
  • 人工智能
  • 前端资源
  • 后端资源
  • 壁纸
  • 开源项目
  • 测试
  • 论文
热门搜索
  • jetson nano
  • vue
  • java
  • mysql
  • 人工智能
  • 人脸识别
迦娜王
坚持才有希望
1224 文章
35 评论
242 喜欢
  • 1
  • 0
  • Top