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

标签 javascript node.js angularjs express mean.io

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

无论如何,我删除了“#!”从 URL 输出整个用户和文章模型,因为它们在数据库中。它看起来好像这样做使它停止通过 Angular 进行路由,而是使用只是 JSON REST api 的 Express 路由。这是 MEAN 堆栈包、Angular 作为一个整体的缺陷,还是仅仅是开发环境设置的缺陷?我无法想象它会以这样一个巨大的缺陷发布,但也许我只是遗漏了一些东西..

可复制的步骤:

  • 按照 http://mean.io 上的安装说明进行操作
  • 在浏览器中转到您的本地应用程序并创建一个帐户并登录
  • 写一篇文章
  • 查看您刚刚创建的文章项并从 URL 中删除 #!/,然后您会看到您登录的用户帐户的 JSON 对象 完成散列密码和盐,以及文章 对象。

最佳答案

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

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

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

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

“用户未被授权”

而不是 JSON 列出所有文章。

关于javascript - Angular/MEAN.io 中的路由安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075443/

相关文章:

node.js - microsoft-identity-express - 为什么我无法成功登录?

javascript - 将图像的每个像素颜色转换为json

javascript - 解析值出现未知提供者错误

javascript - AngularJS:类型错误:无法设置未定义的属性

javascript - 尝试在我的第一个 react 网站上建立一个基本的搜索栏

c++ - 从 NodeJS 到 C++ 我应该如何传递参数并获得结果

javascript - AngularJS 表单两种方式绑定(bind)

javascript - JavaScript 中的 <T> 是做什么用的?

javascript - 如何在 javascript 中扩充父类(super class)中的方法

javascript - 带有 angularJS 的 ASP.NET 无法加载模板