是't angularjs ui路由器解决不安全问题
isn't the angularjs ui-router resolve insecure?
如果我有当前状态
.state("display",
{url:"/display",templateUrl:"display.ng.html",
controller:"DisplayController",
controllerAs:"displayController"})
我在状态中添加了一个解析,这样只有登录的人才能访问该路线,例如:
resolve: {
"currentUser": ["$meteor", function($meteor){
return $meteor.requireUser();
}]
}
*取自http://angular-meteor.com/tutorial/step_08
这不是造成了一个安全漏洞吗?
难道没有人能在浏览器中打开控制台并"重写"路线,这样就不需要用户了吗?
如果我们针对前面提出的问题,"是"将是简短的答案。然而,这个答案背后的真相是,它并不是为了安全而设计的,因为这是不可能的。用户/客户端下载完页面的那一刻,从技术上讲,他们就可以完全访问你给他们的一切。无论你在客户端采取多少预防措施,人们都可以保存你的文件,随意编辑,然后使用这些文件重新加载页面。他们可以去他们想要的任何路线,运行他们想要的javascript,等等。
这是什么意思?永远不要信任用户。曾经如果你不想让别人看到什么,就不要把它包括在回应中。如果你在客户端隐藏它,没有什么能阻止用户打开源查看器,只需在文件中挖掘即可找到它。即使你缩小了所有内容,有足够驱动器的人也可以找到所有内容。
同样适用于API调用、套接字通信等。客户端可以发送他们想要的任何内容。如果他们知道URL、预期数据和发送方法,他们就可以创建自己的假客户端,并发送他们想要的任何内容。这就是为什么客户端验证几乎只对UI原因有用(将框标记为红色,通过拒绝表单节省时间等),但您必须重新验证并重新检查服务器端的所有内容。
tl;dr-是的,它"不安全",但这不是angular/ui路由器的错。这就是客户端开发的方式。如果你不想让没有访问权限的用户看到某些内容,请不要将其包含在你发送给他们的数据/文件中。检测它并将其从服务器端剥离。
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- AngularJS UI路由器不能像ng路由器那样工作
- 如何解决Yii中的页面刷新问题
- 测试Angular Service解决错误回调中的promise
- 反应路由器弄乱了请求网址
- 如何使用带有Preact的React路由器
- 如何在react路由器的组件中使用参数
- 如何解决Access Control Allow Origin错误
- 父页面的角度路由器导航高亮显示
- AngularJS ui路由器html5模式中断路由
- 如何在状态输入ui路由器时立即显示模板,然后当承诺被解决时显示数据
- React,Flux,React路由器调度错误-可能的批更新解决方案
- 未捕获的ReferenceError:IndexRoute未定义-如何解决此错误以在react路由器中使用IndexRo
- AngularJS UI路由器在工厂/服务中使用已解决的依赖项
- Angular UI路由器-使用“;“解决”;直接在模板url上
- 基于角度组件的方法和在路由器中的解决方案
- 流星说铁路由器无法与Intellij解决
- 如何解决错误对象#<没有方法'路由器'在node . js
- 是't angularjs ui路由器解决不安全问题
- Angular UI路由器覆盖解决子状态