公共API设计中.
通常会给调用者分配 appKey 和 appSecret,
appSecret 是需要保密的. 类似用户的密码, 我的理解需要和密码一样的安全保障.
作为 API 的提供方, appSecret 是怎么存储的? 怎么保证和用户密码类似的安全性?
公共API设计中.
通常会给调用者分配 appKey 和 appSecret,
appSecret 是需要保密的. 类似用户的密码, 我的理解需要和密码一样的安全保障.
作为 API 的提供方, appSecret 是怎么存储的? 怎么保证和用户密码类似的安全性?
对于公共API中的appSecret的存储和安全性保障,通常采取一系列的措施来确保其安全。以下是一些常见的做法:
* 使用强加密算法(如AES、RSA等)对appSecret进行加密存储,确保即使数据库或服务器被攻破,攻击者也无法直接获取到明文的appSecret。
* 限制对存储appSecret的数据库或服务的访问权限,只有授权的人员或系统可以访问。这可以避免未授权的访问和潜在的泄露风险。
* 使用散列算法(如bcrypt、scrypt等)对appSecret进行散列存储。散列存储可以确保即使appSecret被泄露,攻击者也很难逆向工程得到原始的appSecret。
* 使用专门的密钥管理系统来管理和存储appSecret。密钥管理系统通常提供更高级的安全保障措施,如密钥的生成、存储、使用和销毁等过程的控制和管理。
* 定期更换appSecret可以减少密钥被泄露的风险。同时,对于不再使用的appSecret,应该及时进行废止,避免潜在的安全隐患。
* 在传输appSecret时,应该使用安全的通信协议(如HTTPS)来保护传输过程中的数据安全,防止数据被截获或窃听。
* 对存储和访问appSecret的过程进行审计和监控,及时发现潜在的安全问题,并采取相应的措施进行解决和防护。
通过上述措施的综合运用,可以大大提高appSecret的安全性,并保障公共API的安全稳定运行。同时,也需要根据具体的业务需求和安全等级要求,选择合适的存储和保护方式。
3 回答1.1k 阅读✓ 已解决
1 回答945 阅读✓ 已解决
695 阅读
也可以像密码一样进行两层md5 + salt,进行存入数据库,因为可以不需要进行逆解析。像微信公众号的appSecret 直接重置,除了生成的时候能看到,后面就只能直接重置了