【问题标题】:Angular routing authorization securityAngular 路由授权安全
【发布时间】:2016-02-01 03:44:49
【问题描述】:

我是 Angular 的新手,我想要解决的一件事就是路由授权。我来自 .NET/IIS 世界,其中路由授权就像使用 [Authorize] 属性装饰您的 API 或 MVC 控制器一样简单。

我已经阅读了几篇关于 Angular 如何处理路由的文章和文档。我担心的是授权正在客户端上进行。是什么阻止了用户启动开发工具、断点脚本执行以及更改授权服务中控制用户是否有权访问此路由的变量?

正如我所提到的,我是 Angular 的新手,所以我可能误解了路由的工作原理。如果是这种情况,请纠正我。

所以,我的问题是:如何使用 Angular 路由实现与使用服务器端路由授权相同级别的安全性?

谢谢。

【问题讨论】:

    标签: angularjs routing


    【解决方案1】:

    很明显,纯客户端解决方案是不存在的。因此,在必须安全限制某个路由的情况下,只能使用 Angular 路由。我认为必须在两端处理路由。

    我正在使用 Node,所以这就是我所做的:

    //first evaluate the restricted route
    app.get('/admin/*', function(req, res) {
        //authorization
        var authenticated = call_to_auth_service();
        if (!authenticated) {
            res.status(403);
            res.end();
        }
        else {
            //just remove the front /
            var url = req.url.replace('/admin/', 'admin/'); 
            res.render(url);
        }
    });
    
    //open access - everything else goes back to the index page and there the angular routing takes over
    app.get('*', function(req, res){
        res.render('index');
    });

    这可行,但我不确定这是否是最好的方法。你怎么看?这是处理路由的正确方法吗?

    谢谢。

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 2012-04-07
      相关资源
      最近更新 更多