【问题标题】:Secure response from Rails to AngularJS从 Rails 到 AngularJS 的安全响应
【发布时间】:2014-06-25 13:24:18
【问题描述】:

请帮帮我,如果用户是管理员,我想显示一个 html 元素,否则隐藏该元素,

例子:

AngularJS:

$http.get('users.json'})
.success(function(data){

    //data user return true and the value true represents admin
    $scope.user = data.user;
});

HTML:

<h1 ng-show="user">Hello Admin</h1>

这里的问题,任何人都可以打开firebug或devTools并更改用户范围值。

【问题讨论】:

  • 我不明白它为什么重要:它唯一的客户端视图,所以即使有人更改它并看到“管理员”,因为后端不会提供信息,这没什么大不了的
  • @apneadiving:我敢肯定Hello Admin 并不是他要在真正的应用程序中实现的。它会更多。 (管理员的东西)
  • 然后呢?那不是因为您可以看到可以访问内部内容的框(视图)(由后端保护)
  • 但是如果你有一个不安全的后端......好吧......安全的基础一直是后端,而不是前端。另一个例子:隐藏链接并不能保证安全
  • 我不认为whats-inside 在这里受到后端的保护。尝试是制作一个完整的客户端应用程序,我下面的解决方案建议 OP 切换到管理内容受后端保护的架构:)

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


【解决方案1】:

你猜对了,上面的方法根本不安全。

解决方案是将本地数据发送到服务器并让它返回安全内容,然后将其动态注入到 dom 中。

即与管理员相关的内容并不总是出现在客户端,只有在身份验证后才会获取(可能通过 AJAX)并呈现。

这让您的应用更加安全。

您可能还想研究以下用于客户端应用程序安全身份验证的机制:

https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    相关资源
    最近更新 更多