. 简单的 1 键 REST API 有什么风险?

弯曲的

如果这是愚蠢的,请原谅我,而不是我的领域。

假设我想为我的用户提供这样的 API:

www.mydomain.com/USER-API-KEY/some-user-data

其中USER-API-KEY16 个字符和数字是每个用户的唯一 ID,只有他自己知道。

假设用户使用它来将数据写入服务器(Amazon/Firebase 等)。

为什么这个 API 被认为是不安全的有没有办法通过保持这种简单性来使这个 API 更安全地免受攻击?

加博·伦杰尔

您承担的风险完全取决于您。在 URL 中传递敏感信息(如访问令牌或 api 密钥)有其风险,但您可以决定接受这些风险。

想到的几件事:

  • URL 被记录。他们会登录中间代理,也会登录实际为您的 API 提供服务的服务器。攻击者可能会访问这些日志,从而破坏 API 密钥。

  • 与安全无关,但 API 密钥的更改将使您的方案中的所有缓存结果无效,如果密钥经常更改,这可能会对性能产生潜在影响(应该如此,尤其是当您在 URL 中发送它们时) .

  • 您的一些客户可能有明确的政策来禁止在 URL 中发送敏感数据。这意味着您的解决方案中的风险不仅是技术性的,如果您愿意,它还具有“客户关系方面”。

所以简而言之,安全最佳实践不是像那样发送 API 密钥。如果这样做,它很可能会在以后的渗透测试中作为漏洞被发现。

您仍然可以决定这样做,老实说,这可能不是您的应用程序被黑客入侵的方式(如果有的话)。但接受这种风险应该是一个明智的决定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有Akka + Persistence的简单REST API的设计

来自分类Dev

简单的WEB API REST项目

来自分类Dev

使用Spring进行简单的REST API调用?

来自分类Dev

使用简单的AUTH航行REST API

来自分类Dev

GoLang简单的REST API应该使用GoRoutines

来自分类Dev

GoLang简单的REST API应该使用GoRoutines

来自分类Dev

YARN REST API-提交简单的工作

来自分类Dev

在Django中创建NON-REST API的最简单方法是什么?

来自分类Dev

简单的API Rest python脚本会花费很多时间(或没有结束)

来自分类Dev

HBase REST API按行键搜索

来自分类Dev

REST API中的外键约束

来自分类Dev

HBase REST API按行键搜索

来自分类Dev

在REST-ful api中序列化外键字段的最佳实践是什么

来自分类Dev

django rest框架-使用单个API调用创建具有外键的资源

来自分类Dev

将Django REST Framework API用于具有复合键的数据模型

来自分类Dev

如何通过REST API删除带有二进制行键的HBase单元?

来自分类Dev

仆人中的rest api的简单示例或“如何正确混合monads”?

来自分类Dev

简单的REST API获取呼叫无法正常工作的Android

来自分类Dev

对JBPM REST API进行简单调用时出现NotFoundException

来自分类Dev

REST API with Postgresql - 如何制作最简单的前端界面

来自分类Dev

mysql为什么不使用键进行简单选择?

来自分类Dev

mysql为什么不使用键进行简单选择?

来自分类Dev

什么是 REST API 往返?

来自分类Dev

OAuth保护REST API有什么好处?

来自分类Dev

REST API代码有什么问题?

来自分类Dev

简单查找结构键

来自分类Dev

Ecto 简单外键

来自分类Dev

没有@EmbeddedId或@IdClass的超级简单复合键

来自分类Dev

PHP中的Rest API:{'错误':“缺少'输入'或'实例'键”}

Related 相关文章

热门标签

归档