javascript - 如何将 Web API 设为私有(private)

标签 javascript security rest

我有一个 API,我想限制其访问。我可以提供访问 key 并在每个请求中检查它们,但我不确定这到底能走多远。

该 API 由应用程序使用,但也由 Web 应用程序使用,人们可以查看其源代码。如果他们这样做了,他们就会拥有 key 并可以轻松地进行 API 调用。

是否有更可靠的方法来确保访问安全?我不确定这里的标准做法是什么。

编辑:经过思考,我可以使用两管齐下的方法。 Web 应用程序可以将 POST 与 CSRF 结合使用,应用程序可以使用 API key 。还有其他想法,或者这是普遍接受的解决方案吗? (请注意,这仍然不适用于第三方网络应用程序。)

最佳答案

您的 API 从来都不是私有(private)的,因为它由网络应用程序使用,我假设该应用程序可供公众使用。如果是这种情况,那么确实没有动力来保护它,因为任何人和每个人都可以访问该 API。

如果另一方面,此网络应用程序仅适用于注册用户,则您可以使用 token 系统来检查授权。当用户成功登录时,您会传回一个 token (通常长度为 20 到 30 个字符)。每个 API 请求都需要一个有效的 token 。如果您的应用程序需要更高的安全阈值,则可以将 token 设置为在创建后 X 小时自动过期(使用数据库作业)。如果安全性不是一个大问题,它们可以在每次提出请求时自动续订。

这本质上是一种两层方法。为用户生成临时 token 以直接连接到您的 API,这样永久凭证就不会发送到客户端。预定义 key 会提供给在您的 API 之上构建应用程序并拥有自己的后端的第三方开发人员。

关于javascript - 如何将 Web API 设为私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453992/

相关文章:

javascript - 关于 ReactJS 中的 LifeCycles/代码片段中的问题

javascript - 如何使用 javascript 函数返回格式化的 HTML 代码

security - 在 Web 注册时验证用户电子邮件的重要性

web-services - 在服务器上部署 Web 应用程序但指向许多数据库模式

javascript - 我的 AngularJS 客户端没有消耗我的 RESTful 调用

php - 使用 include 时,php 将 ""添加到 html

javascript - 异常管理器.js :86 AboutHelpButton is not defined

http - 在单页应用程序中定义动态内容安全策略

java - 前端 JBoss 的安全问题 - OWASP 安全性的模糊性

java - Jersey :禁止未指定的参数