我目前正在设计架构,该架构允许我的客户端网站使用跨源标头与另一台服务器上受基本身份验证保护的主RESTful API
进行通信。
当用户在其中一个网站上注册时,表单将发布到PHP file
,然后创建流并将数据发布到主服务器上的API
(两个服务器都受SSL保护)。
问题在此之后出现。对于对API
的每个请求,我需要重新提供用户的用户名和密码,以便通过基本身份验证成功对其进行身份验证。
如何安全地存储用户的用户名和密码,以便在用户更改其帐户时继续向客户网站提供对 API 的访问权限?
在会话变量中存储加密的用户名和密码是否足够安全?用户会将敏感信息(如信用卡号)传递给主API
因此安全性是重中之重。
如果您确实需要将用户名和密码存储在SESSION
中。然后用server-side key
加密username
和Password
。
此server side key
将位于服务器中的文件中,但不在根文件夹之外的根文件夹中,您可以在将凭据发送到API
时decrypt
。
因此,即使您的会话被劫持,破解server side key
的凭据也不容易。
可能您想查看这些链接
创建安全的 REST API
SO - PHP 会话安全性