1

我正在研究這個應用程序,用戶應該回答一堆問題。AngularJS中的客戶端與服務器端授權

我想要做的是保護包含問題對象的JSON的頁面,該對象還包含敏感信息,例如問題的答案。

我想要做的是限制訪問該頁面的非管理員用戶在客戶端(他們不應該能夠鍵入並轉到該網址,並看到該頁上的JSON,他們應該得到一個403),同時允許來自服務器端的非管理員用戶的HTTP GET請求,所以我可以得到問題讓他們回答。

這是我對客戶端:

$routeProvider 
    .when('/questions', { 
     resolve: checkRoleForRoute.admin 
    }) 

而這就是我對服務器端:

application.get('/questions', questions.getQuestions); 

兩個單獨的線路運行良好,但一旦路由是相同的,服務器端代碼總是執行,而客戶端代碼不是。因此,任何不是管理員的用戶在訪問URL時都能看到普通的JSON,這是不可取的。 關於爲什麼會發生這種情況的任何想法?

謝謝。

回答

0

在提供JSON數據之前,您應該在服務器端添加一些安全檢查,即服務器應該檢查數據是否可以提供給請求用戶。

此外,在我看來,路由在客戶端也是可以破解的。 事實上,使用瀏覽器的開發工具,如果他足夠聰明,可以更改或跳過「解決」字段。