PHP - 保护 RESTful API 请求


PHP - Protect RESTful API requests

我使用JSON API来获取网站的数据。我知道各种方法可以使其安全,但我的情况与普通方法不同。

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

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

我可能尝试发布到请求中的任何数据都将通过 JavaScript 进行,因此像 API 密钥或令牌这样的东西是可见的,并且会破坏整个目的。

有没有办法防止这些PHP文件在网站之外运行或其他东西?基本上让访客无法进入它们?

这与 REST 无关。您有一个服务器端 REST 客户端,在该客户端中,您使用 cURL 调用 REST 服务,浏览器看不到此过程的任何内容。除非你不想为这个AJAX客户端构建自己的REST服务,否则这只是一个常规的Web应用程序(从浏览器和AJAX客户端ofc的角度来看(。正如洛伦兹在评论中所说,您应该像往常一样使用会话。就这样。如果要限制对某些页面的访问,可以使用访问控制解决方案,例如,基于角色的访问控制非常常见。