【问题标题】:API protection from spoof referrer防止欺骗引荐来源的 API 保护
【发布时间】:2015-03-05 16:52:46
【问题描述】:

我有一个项目,它有一个 rails-api 后端和一个在单独的 nginx 服务器上运行的 angular repo。前端向 API 发出正常的 JSON 请求,但我有一些内部方法,我只希望我们的前端发出。到目前为止,我一直将引荐来源网址保护用作我们前端服务器的白名单,但我知道这可能会被欺骗。

如何防止攻击者通过这些内部方法创建帐户并向服务器发送请求?

我考虑的另一个解决方案是在每个请求上向前端发送一个 CSRF 令牌令牌,然后要求前端在每个请求中发送它。我也不喜欢这个想法,因为攻击者也可以在每次他发出请求时向这个端点发出请求以获取 CSRF 令牌。

我在这里遗漏了什么明显的东西吗?人们是如何解决这个问题的?

【问题讨论】:

    标签: ruby-on-rails angularjs api security authentication


    【解决方案1】:

    我在您的描述中没有听到任何使您的用例不同于常规、非棱角分明的应用程序的内容。

    如果我有一个提供“注册”页面的常规 Rails 应用程序,则没有什么可以阻止恶意用户在该页面上编写无限循环的注册脚本。这似乎是您所描述的问题,但问题似乎有所不同,因为您在脑海中区分了有意公开的 API 和供内部使用的 API。 p>

    对此的典型解决方案是使用验证码或其他东西,以确保您在 API 请求的另一端有人。

    【讨论】:

      【解决方案2】:

      前端 js 源可供任何用户使用。即使被混淆,也可以用于逆向工程。

      这似乎是您的应用程序架构问题,您的前端允许用户进行一些限制他的操作。

      您可能应该在此处提供有关您的应用的更多信息。或者查看和更改应用架构。

      【讨论】:

      • 这是否意味着任何将其前端和后端分开的网站都允许任何人(具有足够的持久性)以编程方式使用其网站上的任何功能?
      • 嗯,它是HTTP协议的核心概念。前端只是一个人性化的界面。因此,您应该只与互联网共享任何人都可以访问的接口。
      猜你喜欢
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多