PHP - 保护RESTful API请求

问题描述:

我使用JSON API来获取网站的数据。我意识到可以使其安全的各种方法,但是我的情况与常用方法不同。PHP - 保护RESTful API请求

由于跨域问题,我必须创建一个API文件夹,其中包含对REStful API执行cURL请求的各种PHP文件。然后我通过我的网站上的AJAX请求这些本地PHP文件。在下一个版本中,它应该是JSONP来避免这个问题。

许多这些JSON请求包含敏感信息,所以我做的第一件事就是检查HTTP Referrer,以便在检查JavaScript代码并尝试在其浏览器上运行时检查URL。这显然不安全,我也不应该依赖它。

我可能会尝试发送到请求的任何数据都将通过JavaScript进行处理,因此类似于API密钥或令牌的内容会显而易见,并且会破坏整个目的。

有没有办法阻止这些PHP文件在网站外运行?基本上让他们无法访问?

+0

使用会话,需要一个cookie,这是一个解决方案吗? – 2014-12-05 16:47:55

+0

我正在调查PHP sesisons,看看是否有帮助。我已经向登录用户唯一的请求发送了3个cookie。因此,如果用户登录,那么他们可以成功运行API URL。或者你在谈论另一个cookie? – jstudios 2014-12-05 16:51:25

+1

我正在讨论证明用户已登录的会话cookie。 – 2014-12-05 16:52:41

这不需要对REST做任何事情。您有一个服务器端REST客户端,您可以在其中使用cURL调用REST服务,并且浏览器无法看到此过程的任何内容。在你不想为这个AJAX客户端构建自己的REST服务之前,这只是一个普通的Web应用程序(从浏览器和AJAX客户端的角度来看)。正如洛伦兹在评论中所说,你应该像平常那样使用会话。就这样。如果您想限制访问某些页面,您可以使用访问控制解决方案,例如基于角色的访问控制非常普遍。