使用 PHP/MYSQL 构建安全的公共 API

2022-08-31 00:29:20

我目前正在为一个非常繁忙的互联网网站构建一个API。它是用PHP和MySQL编写的。现在,这是我写的第一个API,它允许人们远程访问他们的帐户。一旦API上线,开发人员将能够从中编写自己的工具。

现在我有API工作,但我不确定它是否完全安全。

一个可行的示例 URL 是:http://domain.com/api.php?api_option=list&api_user_name=USERNAME&api_user_password=PASSWORD

USERNAME:将是用户的实际用户名

PASSWORD:将是其实际密码的 MD5 编码字符串。

如果详细信息匹配,则返回结果(如果不是)和错误。

所有外部输入都得到治疗。$_GETmysql_real_escape_string()

我想让事情保持简单,但我不确定这种方式是否是一种安全的方式,可以直接利用用户帐户数据的公共API。

非常感谢您的想法和建议。


答案 1

拜托,为了对互联网的热爱,不要这样做。我恳请您花时间为您的API实现OAuth。请。请请请。

看看这个:http://toys.lerdorf.com/archives/55-Writing-an-OAuth-Provider-Service.html


答案 2

不要使用密码进行 API 清除,即使它是编码的,尤其是当它在 MD5 中编码时。此外,我也不会使用用户用户名。让用户生成密钥。您使某人能够知道访问用户帐户所需知道的50%的信息,并且MD5有很多站点,您可以将其反转并找到密码匹配项。密钥当然是最好的方法,因此开发人员可以出于安全目的进一步重新生成密钥。始终考虑安全性。


推荐