我将授权密钥存储在钥匙串中,这是使用后端 API 所必需的。在应用程序启动时获取此授权密钥并将其保存在变量中是一个好的做法,还是我应该在每次向后端请求之前查询钥匙串?
我想知道在每个请求中从钥匙串中检索密钥是否不会对性能产生负面影响并导致从钥匙串中检索数据时随机发生的错误。
在启动时从钥匙串中检索一次密钥并将其存储在内存中,可以减少每次请求时访问钥匙串的开销,并简化代码,因为您只需要获取一次密钥,然后在整个应用程序的生命周期中使用内存中的变量.
但另一方面,将密钥长时间存储在内存中可能会存在安全风险,特别是当应用程序在后台运行或存在内存转储攻击的可能性时。
需要考虑的其他事情是该授权密钥的生命周期,因为您可能需要更新缓存的值。
在每次请求之前查询钥匙串,确保密钥仅在内存中保留尽可能短的时间,从而减少潜在攻击的窗口。
虽然钥匙串访问比内存访问慢,但性能影响通常很小,除非您在短时间内发出大量请求。
所以我赞成在需要时从钥匙串中获取,因为我从事的所有项目,安全性是必须的,并且性能影响不会产生很大的影响,但这一切都取决于您的具体需求。