问题标签 [api-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

java - 如何使用我自己的自定义令牌系统保护我的 Java Spring Boot API?

我正在尝试使用令牌系统保护我的 Java Spring API。目的是我可以说,如果令牌在控制器中具有权限(令牌 xyz 是管理员或只是一个用户),我想说只允许管理员调用该方法。

我希望你能理解我的问题。谢谢!

0 投票
1 回答
59 浏览

rest - 如何防止攻击者使用我的密码重置机制向炸弹人发送电子邮件?

我的网络应用程序有一个非常标准的功能,允许忘记密码的用户通过向自己发送一封密码重置电子邮件来重置密码,其中包含指向该页面的链接以创建新密码。

我担心 person1 可能会使用此页面骚扰 person2,声称需要密码重置电子邮件,但提供 person2 的电子邮件地址,然后使用机器人自动执行此操作,向 person2 发送大量电子邮件。它不会泄露任何秘密,但它可能会很烦人,甚至是他们收件箱上的 DoS,我的应用程序会受到指责。

我知道我可以限制发送电子邮件的 api 调用,但是怎么做呢?无法对进行 api 调用的用户进行身份验证,因为如果他们已登录,则不需要重置。如果 api 调用是开放的,那么就无法验证调用者,因为任何一般请求信息(如 IP)都可能被欺骗(或通过代理服务器发送)。

如果我在全局范围内限制该 api 调用,那么如果大量合法用户恰好同时使用该功能,那么他们可能会被锁定。

你如何处理这样的情况?

0 投票
1 回答
30 浏览

api - 当 API-Security 只有一个用户角色时,使用 JWT 是否足够?

我将开发一个移动应用程序,为此,我阅读了很多关于 API 安全性的内容并且有点困惑。如果我的应用程序向 API 发出请求,那么身份验证是否足够,或者我是否还需要授权,因为我只有一个用户角色。

这意味着 JWT 而不是 OAuth 就足够了,对吧?

0 投票
1 回答
443 浏览

web-services - 如何在 Kong Gateway 后面保护公共和内部流量的 API

我们目前有多个不在网关后面的 API。公开的 API 使用 OpenID Connect 进行身份验证和声明授权。一些 API 仅供内部使用,并在防火墙后进行网络保护。

我们计划在我们的 API 前设置 Kong Gateway Enterprise。我们应该能够在网关处集中来自公共客户端的令牌验证。我们也可以集中一些基本的授权(例如范围)。一些逻辑可能仍需要在上游 API 中发生。因此,这些 API 仍然需要知道调用者(客户端和用户)的上下文。

理想情况下,我们希望能够拥有可以公开公开并在内部调用的 API,以避免重复逻辑。我想了解一些在 Kong 上实现这一点的安全方法。我仍然不清楚如何在网关后面设置系统。

我的一些问题是:

  • 我们是否应该同时拥有内部网关和外部网关?是否有关于如何选择何时创建单独网关的指导?
  • 如果我们在一个链中有多个上游服务,你如何传递 auth 上下文?
    • 自定义标题?
    • 传递原始的 JWT?
  • 我们如何使服务安全地响应内部和外部调用?
    • 我们可以设置一个网格并使用 mTLS,但是在 mTLS 和网关之间传递 auth 上下文的方法会不会有所不同?
    • 我们可以从 Kong 设置自定义标头,并让其他内部服务也呈现它们。但是由于这不在 JWT 中,我们不是失去了声明的真实性吗?
    • 我们可以让每个调用者(包括内部服务)获得他们自己的令牌,但这可能会使客户端和机密的数量难以管理。另外,当这些服务仍然代表用户作为早期请求的一部分时,它不会处理这种情况。
    • 或者我们可以继续保持独立的内部和外部服务,但重复一些逻辑。

其他一些可能有用的注释:

  • 除了我们的 OIDC 提供商之外,没有其他现有的 PKI。
  • 服务不会全部被容器化。想想 EC2 上的 IIS。
  • 服务大多是 REST 式的。
0 投票
0 回答
20 浏览

api - 从不受信任的服务访问外部 API

我有一个服务器。它是不可信的,不安全的。

我有它的应用程序。我需要在此服务器上使用带有 api 密钥的外部 Api。

我无法在此服务器中保存我的安全 Api Key。保存在 ENV 变量中也是不安全的。所以我需要像 Api 代理或 Api 网关这样的东西。

需求:

1.快速执行无需确认:

  • 服务器上的应用程序向 Api 代理发出 http 请求(使用 api 方法和参数,没有 api 密钥)
  • Api Proxy 使用我的 api 密钥运行 api 方法
  • Api Proxy 使 webhook 连接到我的服务器

2. 确认后执行:

  • 服务器上的应用程序向 Api 代理发出 http 请求(使用 api 方法和参数,没有 api 密钥)
  • Api 代理要求我执行方法(通过电报、电子邮件等)

允许:

  • Api Proxy 使用我的 api 密钥运行 api 方法
  • Api Proxy 使 webhook 连接到我的服务器

禁止:

  • Api 代理将 webhook 连接到请求取消的我的服务器

我们有这样的 Api Bridge/Proxy(Api 的代理)项目吗?

这样的项目可以将我的 Api Key 保存在安全的地方。它还必须从我的不受信任的服务器接收 api 方法并将其执行到 Api。需要诸如 Policy 之类的东西。

0 投票
1 回答
105 浏览

azure - Azure APIM、API 安全实施、JWT

我想在 azure APIM 中为我的 API 实现安全性。我正在为 APIM 中的 API 寻找 JWT 验证策略的实现。这样我的 API 是安全的并且令牌是经过验证的。我找不到任何解释我如何配置 JWT 的好文章,前提是我使用 OpenID 完成了 SSO 并拥有用户数据库。

更具体地说,我不希望用户获得登录提示。出于安全目的,还有其他方法可以获取令牌吗?由于我的应用程序也调用了注册页面的 API,因此我们没有用户登录,在这种情况下,我们如何在 APIM 上验证 API,然后再将其传递到后端。

非常感谢!,拉杰什

0 投票
0 回答
21 浏览

express - 保护公共 API 以供目标人员访问

我有几个端点可供第三方访问。(这不是注册用户)我正在寻找确保没有匿名请求接收数据的最佳方法。

我曾考虑过使用RSA,我通过另一个端点提供一个公钥 ,该公钥在 10 分钟后过期给请求者,然后他们使用该公钥加密数据,如格式,但这意味着如果外人知道这一点格式{requests:'users'},他/她能够请求私钥,用它加密该数据并仍然可以发送成功的请求。{requests:'users'}

0 投票
1 回答
56 浏览

android - Android 的 Google API 限制如何工作?

显然,Google 提供了一个系统,允许 API 消费者仅在 Android 应用程序中使用他们的 API 以确保安全。

要使用这个系统,您只需要提供 Android 包名称和应用程序的 Keystore 文件的 SHA-1 密钥。

可以绕过这种安全措施吗?Android 应用程序和 Google 服务器在后台进行什么样的通信?

0 投票
0 回答
35 浏览

oauth-2.0 - OTK(开放令牌)与 JWT

开放令牌(OTK)的目的是什么,它与 JWT 有何不同。我知道技术实现是不同的,但除此之外在使用方面有什么不同。何时使用 JWT,何时使用 Open Token?

0 投票
1 回答
50 浏览

security - 共享受域限制的 API 密钥是否安全?

我正在使用 Google 的 Perspective API 并有一个 API 密钥。我已将此限制为我将要使用的特定域,但我想知道在我的代码中释放密钥是否安全?由于这将在客户端的浏览器中,因此我不想为此创建后端,但如有必要,我会这样做。

本质上:共享受域限制的 API 密钥是否安全?