【问题标题】:AJAX requests to fetch data from private APIAJAX 请求从私有 API 获取数据
【发布时间】:2015-11-13 08:48:03
【问题描述】:

我有几个项目(Chrome 应用程序、webOS 应用程序、Chromecast 接收器)都使用私有 API 从我的数据库中获取数据。

所有请求都通过 Post 完成,并且 post 数据在 API 服务器上进行清理(使用 CodeIgniter)。

我有几个问题:

1) 这安全吗?

2) 如果没有,我该如何保护它?

3) 如果我想在 Android 应用程序中使用 API,我应该查看 oauth(或其他身份验证方法)还是简单的 HTTP 请求可以?

请记住,所有这些调用都是当前获取数据。没有数据被插入/更新。

【问题讨论】:

  • 这个问题太宽泛了,无法回答。安全性有很多方面需要您解决。传输层的安全性如何?您的身份验证模型有多安全?您的授权模型有多安全?您的应用程序有哪些潜在的攻击媒介需要缓解(即 XSRF、XSS 等)?正在传输什么样的数据(您的 API 只是提供公开可用的数据,还是正在传输 PII)?我的一般想法是,如果您不知道您的应用程序是否安全,那么很可能不是。
  • 那么我可以做些什么来确保我的 AJAX 请求是安全的?

标签: ajax api rest restful-authentication


【解决方案1】:

安全性不是二元是/否。

我建议您应该假设有人可以/可以看到您正在使用的代码,因此安全性不应依赖于 API 端点或秘密/私有语法。

安全性应该依赖于其他因素,例如使用 TLS (https) 请求和使用强密码/API“密钥”。

【讨论】:

  • 如何在 AJAX 中使用 API 密钥?代码是客户端的,所以他们可以很容易地看到我随请求发送的任何密钥?而且它们不是那种我可以让用户轻松插入 API 密钥的应用程序,因为它们需要简单易用的应用程序。
  • 那么“安全”是什么意思?究竟是什么?
  • 防止任何错误行为。如果 AJAX 请求纯粹是获取数据,是否 100% 安全?
  • 如果您不使用 https (TLS),那么它不会免于窃听或中间人将攻击代码插入客户端。如果 API 不允许修改,那么它应该不会在服务器上进行不必要的修改。它容易受到拒绝服务(洪水)的影响,但大多数端点都是。
猜你喜欢
  • 2018-05-01
  • 1970-01-01
  • 2021-08-16
  • 2023-03-26
  • 1970-01-01
  • 2013-11-27
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多