【问题标题】:How to secure all JSON requests and responses in angularjs and rails ...?如何保护 angularjs 和 rails 中的所有 JSON 请求和响应......?
【发布时间】:2015-06-11 09:33:48
【问题描述】:

我已经使用 rails 和 angularjs 构建了一个应用程序。当我尝试通过 json 请求使用 rails 访问数据表单 db 时,它会在控制台中显示所有响应数据。它可能会导致安全问题。那么有没有办法不在控制台中显示数据..?

【问题讨论】:

  • 是的..停止从服务器请求数据并在控制台中显示它..
  • 请说明可能会导致安全问题
  • 是的..当我尝试使用名称和密码登录时,密码将显示在控制台上。如 {"user":{"email":"user@domain.com","密码":"password1"}}
  • @Sathibabu-Nyros 以及安全问题在哪里?有人可以看到您的控制台
  • 它在控制台中显示我的密码..

标签: ruby-on-rails json angularjs ruby-on-rails-4


【解决方案1】:

JSON 代表 JavaScript 对象表示法。在网页上运行的 Javascript,在客户端运行。

这意味着您在 JS 中编写并发送连接的任何代码都可以由客户端编辑和操作。这也适用于 JSON。

如果您将数据发送给客户,则无法阻止他们查看受限数据。你应该考虑什么为什么你这样做。

您应该只向客户发送他们应该有权查看的敏感信息(例如,仅他们的银行账户详细信息,而不是每个人的)。您可以对用户进行身份验证和授权,以确保确实如此。

您还可以考虑使用一些基于 AJAX 的系统,一次只发送部分敏感数据,这样就不会在一个请求中全部披露。

编辑

我刚刚重新阅读了您的问题。

在创建用户后来自 rails 的响应应该在模型上具有自定义 as_json 方法,该方法为该用户发送 JSON 敏感信息。 例如:

def as_json(options = nil)
    defaults = { methods: :status, except: [:created_at, :updated_at, :password, :password_confirmation] }
    defaults.merge! options if options
    super defaults
  end

然后在响应中调用

@user.to_json

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2013-03-30
    • 2011-06-18
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多