1

我正在构建一个供合作伙伴网站使用的 API。该网站将位于同一域中(api.example.com 和 www.example.com)。将来我们可能会有一个使用这个 API 的移动应用程序。

我不希望有人将我的 api 用于他们自己的网站/应用程序。所以我想有一种方法来验证我的网站到我的 API。我在 SO 中进行了搜索,发现我必须在我的网站中设置一个 Cookie,所以我会在每个 ajax 请求中发送它。很公平,但我将如何生成这个 cookie?如果我在我的 API 中调用一个方法,我必须验证它的来源,所以它不会解决。

我可以在双方都设置一个加密密钥,并用盐加密一些信息并发送到 api 以检查信息。我不是安全专家,但它似乎可以解决我的问题。这个对吗?当用户登录我的网站时,使用用户的登录令牌更改此验证是否安全?

谢谢!

4

1 回答 1

2

您的描述称为 CSRF(跨站点伪造请求)。

为了防止有人从您的请求之外访问您的 API,您的网站应在会话中存储一个令牌,为每个 API 请求传递此令牌,然后 API 应验证该令牌。

有很多关于这个主题的好文章,包括许多具体的例子。

这是其中之一防止跨站点请求伪造

于 2013-09-23T02:29:22.993 回答