2013-02-14 144 views
1

我正在嘗試學習JavaScript中Web應用程序的開發,爲此我開發了一個簡單的時間跟蹤應用程序。我正在用ExtJS開發這個動態創建UI。RIA中基於角色的JavaScript安全

這將允許員工提交他們花費在不同項目上的時間,並允許經理向項目添加項目等等。

一旦用戶登錄,我確定他們的角色,並提供適當的UI(通過JavaScript)。

我想知道做這件事的最好和最安全的方法是什麼? (我當然在服務器端檢查授權,以便沒有人可以通過僅通過http get/post調用我的PHP服務進行更改)

我從禁止非授權人的角度詢問,甚至通過擺弄JavaScript(例如從FireBug控制檯)來查看非授權用戶界面。

我正在考慮創建一個服務,它將通過JSONP返回適當的腳本以創建適當的UI。這對我來說感覺很不錯,所以我想知道是否有更好的方法。

+1

該問題可能過於籠統,無法得到合理的答案。你永遠無法確定沒有人爲自己構建管理用戶界面。最常見的做法是後端擁有一切安全性,前端是靜態的,如果有人想下載他不能使用的UI,那麼不用擔心。 – naugtur 2013-02-14 08:29:46

回答

2

建立在naugtur的評論。您必須始終假定將會有一個非常聰明的人可以爲自己構建UI,或者假冒UI的任何部分都可以對服務器進行的任何調用。

在此基礎上,您提出的對問題結束的方式的前提似乎被揭穿。一旦我們解決了這個問題(我假設你製作一個單頁面應用程序),最簡單的方法就是始終在登錄屏幕上轉儲所有的JavaScript代碼,並且只允許用戶根據他們的需要查看他們需要的內容角色(例如,每個角色都有不同卡片的卡片面板就是一個例子)。

我還想補充一下,在應用程序的後端,你應該總是有安全檢查,以確保用戶對他正在做的任何操作都有正確的角色。如果你的應用程序是面向互聯網的,那麼這是必需的,總會有那個用戶會查看你的代碼,看看他可以做什麼惡意或者只是爲了好玩......或者那個人想知道當他使用調試器以不同的參數創建他自己的假阿賈克斯調用。

+0

我還會補充一點,我去年在一個大型項目中完全滿足了您的要求。 – Reimius 2013-02-14 18:32:42