PHP:验证我的REST应用程序

时间:2011-07-12 21:21:15

标签: php authentication digest-authentication

我一直在研究如何使我的REST应用程序更安全。 HTTP基本身份验证似乎是一种方式,但需要在每次请求时在客户端和服务器之间传送用户名+密码。如果我使用curl但是使用Javascript文件可以正常工作吗?不太酷。

我最近发现并阅读了Digest HTTP身份验证,这似乎是安全HTTP Basic提供的一大步,虽然理解起来要复杂得多,但我仍然不能完全诚实。< / p>

我看过this question,了解使用Digest方法的专业人士和使用者的答案,但似乎我越是想到它,它就越混乱。

似乎有很多已有的解决方案可以解决这个问题,但是大多数解决方案现在已经接近10岁了。

Digest方法是否应该最好留在黑暗中为另一种方法,更新的方法来保护请求,或者是否有任何已有的已有摘要库?

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用HTTPS?您真正需要的只是一个已签名的域安全证书,并检查您的代码以确保它以这种方式连接。它将以这种方式使用SSL,服务器和浏览器将自动负责加密来回发送的数据,并将使用三次握手进行所有通信。

答案 1 :(得分:0)

您可以查看Facebook和Twitter等使用OAuth方法进行身份验证的流行API所使用的不同身份验证技术。

其他API,例如Google Maps(v2)和Bitly,您可以通过URL中的API密钥访问其API。因此,每个用户都有一个API密钥可以在请求中使用,如http://api.domain.com/get?key=supersecureapikey

这两种方法都非常出色并且在整个网络中得到广泛使用,只有直接从javascript访问API才会公开API密钥/密码。一个选项(我使用的选项)解决这个问题是让javascript调用服务器上的一个文件,该文件在服务器端执行API调用,从而保持密钥/密码[更多]安全。