• 开放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主键不要设置成自增序列

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

    重复提交,恶意调用

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

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

    日志

    验证码

    短信类:图形验证码

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

  • 相关阅读:
    手机号码正则(已测试可以)
    查看phpfpm的进程和端口号
    JS正则表达式验证是否为11位有效手机号码,
    访问HTML可以,访问PHPfile not found
    戏说论文、技术文档与网络文字的区别
    Sun 一线产品的图标
    VC编程中如何设置对话框的背景颜色和静态文本颜色
    Sun 一线产品的图标
    Web Beans首个预览版发布
    Web Beans首个预览版发布
  • 原文地址:https://www.cnblogs.com/jarvankuo/p/11954940.html
Copyright © 2020-2023  润新知