PHP:验证我的REST应用程序


PHP: Authenticating my REST application

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

我最近发现并阅读了关于Digest HTTP身份验证的文章,它似乎比HTTP Basic提供的安全性进步了一大步,尽管理解起来要复杂得多,我仍然不能完全诚实地说。

我已经看了这个问题和它的答案,以了解使用Digest方法的利弊,但似乎我想得越多,一切就越混乱。

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

Digest方法是一个过时的方法,最好留给另一种新的保护请求的方法,还是有任何现成的好的Digest库可用?

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

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

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

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