2013-09-29 99 views
6

我剛剛安裝了MEAN堆棧(MongoDB,Express.js,AngularJS,Node.js)並打開了示例程序(如在mean.io上找到的),並且它們有一個基本應用程序,您可以登錄並創建博客「文章「只是爲了測試等。在Angular/MEAN.io中路由安全漏洞?

無論如何,我刪除了'#!'從URL中輸出,並輸出數據庫中的整個用戶和文章模型。它會像接通Angular時那樣接縫,而不是使用Express路由,這只是JSON REST apis。這是MEAN堆棧包中的一個缺陷,Angular作爲一個整體,還是隻是一個開發環境設置?我無法想象,這將與這樣的一個巨大的缺陷被釋放,但也許我只是失去了一些東西..

Replicateable步驟:

  • http://mean.io
  • 轉到按照安裝說明進行本地應用程序在瀏覽器中創建一個帳戶和登錄
  • 創建文章
  • 查看剛剛創建的商品條目,並刪除#!/從URL,你再看到登錄的用戶帳戶 您的JSON對象完成哈希密碼和鹽,以及文章 對象。
+1

這是一個例子,而不是生產就緒系統:*「它旨在讓您快速有組織地開始開發基於MEAN的網絡應用程序,其中包含預先捆綁和配置的有用模塊,例如貓鼬和護照。」* – WiredPrairie

+1

I在他們的gh問題頁面上發表了評論,並且現在修復了它 – ShrekOverflow

回答

6

正如你所說,刪除#!導致路由由服務器處理。節點API然後在響應中轉儲用戶對象。

該問題與Angular完全獨立 - 該應用僅由/路由的節點提供服務。 Angular然後使用散列值顯示正確的頁面。

這可能只是MEAN提供的示例的一個問題。應用程序本身是不安全的,當他們談論代碼結構和設置的最佳實踐而不是快速演示。

您可以向他們詢問一下,因爲可能會有人在示例的基礎上構建而不解決安全問題。

8

它只是一個應用程序配置。如果更改從routes.js:

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

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

然後,如果你試圖打網址/文章直接與你得到的消息:

「用戶無權」

而不是JSON列出所有文章。