Javascript Angular/MEAN.io中的路由安全漏洞?
我刚刚安装了MEAN stack(MongoDB、Express.js、AngularJS、Node.js)并打开了示例程序(在MEAN.io上可以找到),它们有一个基本的应用程序,您可以登录并创建博客“文章”进行测试等等 不管怎样,我删除了“#”!”它从URL输出整个用户和文章模型,就像它们在数据库中一样。它似乎这样做使它停止了通过Angular路由,而是使用了只是JSON REST API的Express路由。这是平均堆栈包中的一个缺陷,从整体上看,还是仅仅是一个开发环境设置?我无法想象这将是一个巨大的缺陷,像那样发布,但也许我只是错过了一些东西 可复制的步骤: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路由。这是平均堆栈包中的一个缺陷,从整体上看,还是仅仅是一个开发环境设置?我无法想象这将
- 请按照上的安装说明进行操作
- 转到浏览器中的本地应用,创建帐户并登录
- 创作一篇文章
- 查看您刚刚创建的文章项目并删除#!/从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);