用PHP写了这么久api接口,需要总结下关于限制的一些问题。
通常接口有对外或对内情况,下面说下相关能用上的规则:
- 限制IP、访问频率等,根据什么来判断就看你了。
- 用户名和密码登陆,验证成功后,生成token,可以有过期限制。
- sign作用:传过来的数据,根据规则生成sign,与传过来的sign对比。也是相当于验证身份
- https保护保存数据
以上还不能保证数据安全,有可能你通过接口身份验证后传输数据还是有可能被路由、终端等拦截数据。
这时候可以选择数据加密方式,以下几种常用的:
DES:Data Encrytion Standard(数据加密标准),对应算法是DEA
特点:1. 对称加密 2. 同一个SK(跨平台可能会。。。)
AES:Advanced Encrytion Standard(高级加密标准)
特点:1. 对称加密 2. 一个SK扩展成多个子SK,轮加密(速度快)
RSA:特点: 1. 非对称加密,即:PK与SK不是同一个
2. PK用于加密,SK用于解密
3. PK决定SK,但是PK很难算出SK(数学原理:两个大质数相乘,积很难因式分解)
4. 速度慢,只对少量数据加密
介绍完特别后你知道选择什么了吧?
PHP 的 OpenSSL 扩展中加密的相关函数有:
- openssl_encrypt()
- openssl_decrypt()
详细看官方手册:https://www.php.net/manual/zh/function.openssl-encrypt.php
也有直接对外暴露在web上的随便访问毫无限制的对外接口,那???