关于PHP/MYSQL中的API密钥有一个问题。我已经阅读了很多资料,但仍需要进一步澄清和一些最佳实践指南,因为我只是对HTML、JS、JQUERY、PHP/MYSQL等技术有基础的了解。
我的服务器端代码是PHP,它连接到MYSQL数据库。数据库有一个“users”表,其中存储列如“id”、“username”、“password”(使用PHP5中的password_hash()函数进行加密,不存储明文值)和“api_key”的内容。我还会考虑添加一些其他的内容,例如“last_seen”和“last_login”以提高安全性。
我希望使用API密钥来验证用户访问服务器上的资源(例如parseID.php,该脚本接受POST参数并返回用户输入的ID的JSON结果)。如果需要,用户也可以在脚本中使用此API密钥来访问JSON输出。
我的思路是:
- 已登录用户单击按钮以生成API密钥。 - 脚本生成API密钥(使用password_hash()函数)并将其保存在数据库中与用户ID相关联。 - 当用户想要访问受保护的资源时,他们将提供给定的API密钥作为GET/POST参数(或存储在会话中?),系统将尝试将其与数据库中的密钥进行匹配,并返回结果(认证 vs 非认证)。 - 如果验证成功,则用户可以访问该资源。
我还将使用SSL来加密用户和资源之间的通信。
我有点不清楚,想知道还有哪些步骤/最佳实践可以采取,以确保API密钥和用户信息的安全性?
我在这里和谷歌上搜索到的所有信息都是几年前的,使用MD5等加密方式。
我的服务器端代码是PHP,它连接到MYSQL数据库。数据库有一个“users”表,其中存储列如“id”、“username”、“password”(使用PHP5中的password_hash()函数进行加密,不存储明文值)和“api_key”的内容。我还会考虑添加一些其他的内容,例如“last_seen”和“last_login”以提高安全性。
我希望使用API密钥来验证用户访问服务器上的资源(例如parseID.php,该脚本接受POST参数并返回用户输入的ID的JSON结果)。如果需要,用户也可以在脚本中使用此API密钥来访问JSON输出。
我的思路是:
- 已登录用户单击按钮以生成API密钥。 - 脚本生成API密钥(使用password_hash()函数)并将其保存在数据库中与用户ID相关联。 - 当用户想要访问受保护的资源时,他们将提供给定的API密钥作为GET/POST参数(或存储在会话中?),系统将尝试将其与数据库中的密钥进行匹配,并返回结果(认证 vs 非认证)。 - 如果验证成功,则用户可以访问该资源。
我还将使用SSL来加密用户和资源之间的通信。
我有点不清楚,想知道还有哪些步骤/最佳实践可以采取,以确保API密钥和用户信息的安全性?
我在这里和谷歌上搜索到的所有信息都是几年前的,使用MD5等加密方式。