<分区>
我已经基于我的 API 创建了一个网站 - 这样我的前端就可以使用简单的 REST API(前端是纯 javascript/html)与后端分离。
我想保护 API 不被其他任何人使用 - 这样调用就可以单独来自网站(或者可能允许其他特定网站使用它)。
目前,如果有人愿意使用 curl
,他将能够非常轻松地抓取 API。
假设 FrontEnd 仅为 JS/Html,我如何保护 API,以便来 self 自己页面的合法调用有效,但 curl
等来自第三方的调用无效?
<分区>
我已经基于我的 API 创建了一个网站 - 这样我的前端就可以使用简单的 REST API(前端是纯 javascript/html)与后端分离。
我想保护 API 不被其他任何人使用 - 这样调用就可以单独来自网站(或者可能允许其他特定网站使用它)。
目前,如果有人愿意使用 curl
,他将能够非常轻松地抓取 API。
假设 FrontEnd 仅为 JS/Html,我如何保护 API,以便来 self 自己页面的合法调用有效,但 curl
等来自第三方的调用无效?
最佳答案
这个问题可能不太适合 SO,因为可能有多个同样有效的答案。
但实现此目的的一种方法是使用 SSL、用户身份验证和 token 。这是一个纲要:
其中的用户身份验证部分很重要,因为否则,虽然您可以非常安全地免受远程黑客攻击(因为 SSL),但黑客使用浏览器访问您的站点以便他/她可以获得然后 token 可以使用 curl
或类似于他/她对该 token 的内容。因此,如果有人正在挖掘您的网站,您至少需要知道他们可能是谁(您的用户身份验证),以便阻止他们。
关于javascript - 保护我的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298948/