Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 获取查询字符串中的API密钥是否安全?_Security_Api_Query String - Fatal编程技术网

Security 获取查询字符串中的API密钥是否安全?

Security 获取查询字符串中的API密钥是否安全?,security,api,query-string,Security,Api,Query String,我正在制作一个API,希望其他用户能够访问它。我的实现是从查询字符串中获取API密钥和API“密码”,并使用它们来标识用户是否是我们站点的有效用户 domain.com/api/?api\u key=theapikey&api\u password=thepasswordhere 我不熟悉安全性,但这是一种安全的方法吗?还是有更安全的方法来做这件事?这不安全不,有更安全的方法是的,调查一下。您可能会找到一些所选语言的帮助程序库。a)您应该使用POST而不是GET,而GET是您当前描述的方法(当数

我正在制作一个API,希望其他用户能够访问它。我的实现是从查询字符串中获取API密钥和API“密码”,并使用它们来标识用户是否是我们站点的有效用户

domain.com/api/?api\u key=theapikey&api\u password=thepasswordhere


我不熟悉安全性,但这是一种安全的方法吗?还是有更安全的方法来做这件事?

这不安全不,有更安全的方法是的,调查一下。您可能会找到一些所选语言的帮助程序库。

a)您应该使用POST而不是GET,而GET是您当前描述的方法(当数据位于地址字段中时)。您可以通过从web应用程序的表单中选择POST方法来获取POST值,即:

<FORM action="http://domain.com/api" method="post">

b) 这在某种程度上更安全,但通过使用https隧道可以感受到更多的安全性,您可以在web服务器上安装一个经过验证的安全密钥,并使用https而不是http

apache的示例:


希望我能帮上忙:)

我建议在标题中传递它。您需要像curl或postman这样的东西来调用它,这适用于大多数为应用程序集成而设计的API键


如果您希望让用户在浏览器中查看,则需要一些登录屏幕。这可以保存为cookie,以便将来的请求不会总是强制登录。

我们不使用POST,因为我们希望API可以从URL访问。这就是我们被迫使用get的原因。我是否可以建议使用某种加密方式(例如MD5)对密钥和/或密码进行加密,然后将其与您的加密密码列表进行匹配?除此之外,我没有别的想法。