如何隐藏安全信息是多么安全

时间:2014-12-18 08:56:56

标签: angularjs

必须根据权限显示我的HTML页面中的div(包含安全信息)。

  • 在这种情况下使用ng-if隐藏div有多安全?
  • 用户是否能够破解并查看包含安全信息的div?

5 个答案:

答案 0 :(得分:17)

为了安全起见,您不应该在前端'中隐藏任何内容。 (即使用Angular)。用户访问使用ng-ifng-showng-hide等隐藏的内容非常简单。

您应该在后端隐藏此数据,而不是首先将其传递给浏览器。

简单的安全规则:如果浏览器有权访问它,那么用户也是如此。

答案 1 :(得分:6)

添加这些答案中已经提到的要点,您应该记住,当您运行webapps时,用户可以访问整个客户端的代码。所以,你应该,甚至不要想到在客户端隐藏敏感数据。

此外,您应该了解ng-ifng-showng-hide之间的差异。 引自AngularJS的网站

  

ngIf与ngShow和ngHide的不同之处在于,ngIf完全删除并重新创建DOM中的元素,而不是通过display css属性更改其可见性。这种差异很重要的常见情况是使用依赖于元素在DOM中的位置的css选择器,例如:first-child或:last-child伪类。

因此,在前端隐藏敏感数据 NOT 是安全的。根据用户的权限级别,您可以进行单独的API调用以获取数据。在服务器上,验证权限并返回适当的响应。

答案 2 :(得分:3)

ng-if不会在视图中呈现关联信息。但是,它取决于$ scope中的数据是否显示信息。此外,显示的信息也在$ scope中。使用浏览器扩展,例如Batarang(甚至简单的javascript),用户可以使用包含的值显示整个$ scope层次结构。

所以......不:)不要期望AngularJS为您隐藏敏感信息

答案 3 :(得分:2)

  

在这种情况下使用ng-if隐藏div有多安全?

一点也不安全。

  

用户是否能够破解并查看包含安全信息的div?

当然,是的。

答案 4 :(得分:2)

实际上,在角度js中,您可以调试,因此用户可以访问您正在使用的对象来切换ng-if并更改其属性。您可能希望使用ng-bind-html并将该div作为一个更安全但不完整的模块