zoukankan      html  css  js  c++  java
  • 开放API接口安全处理!

    [toc]

    开放API接口安全处理!

    参考文献:

    公钥,私钥和数字签名这样最好理解 (转载)

    概念

    存在问题:

    • 数据窃取
    • 数据篡改
    • 数据泄露

    对应解决方法:

    • 加密:RSA/DES
    • 混淆算法:MD5
    • 令牌:TOKEN

    加密

    • 对称

      DES

      AES

    • 非对称(公私钥)

      RSA

      作用:

      • 加密:公钥加密->私钥解密
      • 签名:私钥加密->公钥解密(私钥数字签名,公钥验证身份)

    MD5

    • Message Digest Algorithm

      MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

    • MD5算法特点:

    1. 压缩性:任意长度的数据,算出的MD5值长度都是固定的。

    2. 容易计算:从原数据计算出MD5值很容易。

    3. 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

    4. 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

    • 原理上不能破解,不可逆算法

      但是有些数字可以由彩虹表(数据非常庞大)的碰撞来获取

    • MD5加盐

      MD5(++salt)

    • 应用场景

      1. 接口规定根据那些字段生成MD5
      2. 接口获取第三方调用者的参数来生成对应的MD5和传入的MD5比较
      3. 可以校验表单数据的完整性,防篡改

    Token

    通常在登录时获取,判断用户是否登录状态

    开放api参数

    • id主键不要设置成自增序列

      自增序列会容易给轮询,爬虫

    重复提交,恶意调用

    场景:交易类,订单类,有效期,幂等性

    • 返回服务器时间戳参数,调用时传入,与当前服务器时间比较,有效期内才通过
    • 随机数

    日志

    验证码

    短信类:图形验证码

    注册下发短信:没有用户信息,无法从业务上限制,只能弄人机交互的验证码

  • 相关阅读:
    MySQL 分区
    InnoDB 锁
    【神经网络】自编码聚类算法--DEC (Deep Embedded Clustering)
    【神经网络】变分自编码大杂烩
    【异常检测】Isolation forest 的spark 分布式实现
    【推荐系统】评估指标总结
    【推荐系统】neural_collaborative_filtering(源码解析)
    hadoop之计数器和管道的mrunit测试
    thrift0.5入门操作
    awk之close函数
  • 原文地址:https://www.cnblogs.com/jarvankuo/p/11954940.html
Copyright © 2011-2022 走看看