Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular/MEAN.io中的路由安全漏洞?_Javascript_Node.js_Angularjs_Express_Mean.io - Fatal编程技术网

Javascript Angular/MEAN.io中的路由安全漏洞?

Javascript Angular/MEAN.io中的路由安全漏洞?,javascript,node.js,angularjs,express,mean.io,Javascript,Node.js,Angularjs,Express,Mean.io,我刚刚安装了MEAN stack(MongoDB、Express.js、AngularJS、Node.js)并打开了示例程序(在MEAN.io上可以找到),它们有一个基本的应用程序,您可以登录并创建博客“文章”进行测试等等 不管怎样,我删除了“#”!”它从URL输出整个用户和文章模型,就像它们在数据库中一样。它似乎这样做使它停止了通过Angular路由,而是使用了只是JSON REST API的Express路由。这是平均堆栈包中的一个缺陷,从整体上看,还是仅仅是一个开发环境设置?我无法想象这将

我刚刚安装了MEAN stack(MongoDB、Express.js、AngularJS、Node.js)并打开了示例程序(在MEAN.io上可以找到),它们有一个基本的应用程序,您可以登录并创建博客“文章”进行测试等等

不管怎样,我删除了“#”!”它从URL输出整个用户和文章模型,就像它们在数据库中一样。它似乎这样做使它停止了通过Angular路由,而是使用了只是JSON REST API的Express路由。这是平均堆栈包中的一个缺陷,从整体上看,还是仅仅是一个开发环境设置?我无法想象这将是一个巨大的缺陷,像那样发布,但也许我只是错过了一些东西

可复制的步骤:

  • 请按照上的安装说明进行操作
  • 转到浏览器中的本地应用,创建帐户并登录
  • 创作一篇文章
  • 查看您刚刚创建的文章项目并删除#!/从URL中,您可以看到登录用户帐户的JSON对象 完整的哈希密码和盐,以及文章 反对
    • 正如您所说,卸下#!使路由由服务器处理。节点API然后在响应中转储用户对象

      问题与角度无关-应用程序仅由
      /
      路径上的节点提供服务。然后使用散列值显示正确的页面

      这可能只是MEAN提供的示例的一个问题。当他们谈论涉及代码结构和设置而不是快速演示的最佳实践时,应用程序本身是不安全的


      你可以问问他们,因为可能会有人在这个示例的基础上构建,而不会修复安全问题。

      这只是一个应用程序配置。如果将routes.js更改为:

      app.get('/articles', articles.all);
      

      然后,如果您尝试直接点击url/文章,您会收到以下消息:

      “用户未被授权”


      与JSON列出所有文章不同。

      这是一个示例,而不是一个生产就绪的系统:“它旨在为您提供快速、有序的方式,让您开始开发基于平均值的web应用程序,并使用mongoose和passport等有用模块进行预捆绑和配置。”我对他们的gh issuess页面及其修复版发表了评论
      app.get('/articles', auth.requiresLogin, articles.all);