使用令牌保护Web API

时间:2017-03-16 18:53:10

标签: php ajax rest http

我需要帮助才能了解如何保护API。

我正在开发一个基于带有JSON响应的RESTful API的项目。

我有一个Web应用程序和一个移动应用程序,它们发送这样的请求:

http://my-server.com/api/v1/products

使用协议(GET,POST,PUT和DELETE)并最终使用参数。

我担心的是从两个应用程序中保护这些调用。 今天我只是在检查这是否是一个Ajax调用:

$method = $_SERVER['REQUEST_METHOD'];

    if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
    {
        if ($method == 'GET')
        {
            return $data = $this->stores_model->get_all($select);
        }
    }

但是移动设备不发送xmlhttprequest,对吗?

我想我必须检查存储在会话中的令牌或本地移动的令牌。我还看到了关于CSRF令牌的一些观点,每次都重新生成。

这就是我所知道的安全性。如何了解有关我的架构的更多信息?

1 个答案:

答案 0 :(得分:0)

这是一个非常深刻的主题,但首先您应该在服务器上安装SSL。我认为这是安全的起点。

对于您的JavaScript和浏览器客户端,您可以在API上启用cors。您可以获得有关cors here的更多信息。

对于应用程序客户端,您可以考虑实施OAuth。 OAuth 2目前被广泛使用,易于实施,但您也可以使用OAuth 1.检查它们之间的差异,看看哪个适合您的项目。您可以找到关于它们的良好比较here。有很好的实现,所以检查出来。 OAuth 2的一个例子。