在構建單頁應用程序時,在我的示例中使用Backbone w/Marionette,如何處理管理/超級用戶代碼部分。例如,如果我構建的網站具有可以刪除用戶的管理部分,從財務角度管理帳戶詳細信息等,則技術上攻擊者可以查看代碼。另外,攻擊者可以從視覺角度看到預編譯模板。雖然我明白你可以壓縮代碼/混淆,但這確實不是一個解決方案。這只是在開發SPA時被認爲是一個陷阱? IE只需要確保API是安全的,等等。如果有什麼不安全的話,本質上已經向潛在的攻擊者提供了路線圖...有關管理/超級用戶代碼被暴露的技術
1
A
回答
2
接口的井碼實際上並不重要:它無論如何都是JavaScript,所以惡意用戶可以自己構建,或者直接生成所需的API調用。另外,你唯一能給出「路線圖」的就是API端點,這些端點往往很容易被猜到(例如管理用戶通常會經過「用戶」端點)。另外,這些端點通常是已知的:用戶可以通過點擊「用戶」端點來編輯自己的帳戶,而管理員可以編輯所有用戶。 API調用將是相同的(或非常相似),並且證書/授權將在服務器上進行驗證(理論上,攻擊者無法訪問)。
您的問題接近「我如何通過默默無聞的方式實現安全?」。我知道那不是你要問的,但它不遠。攻擊者無法看到管理代碼路徑或API調用應該沒有問題,因爲它們不應有任何特殊之處。
但正如您在您的問題中所說的,您絕對必須驗證/授權服務器上的所有內容。如果你不把所有來自用戶的數據視爲敵對或篡改,你將有一段糟糕的時間...
希望這會有所幫助!
+0
感謝大衛的全面回答。 – patbaker82
相關問題
- 1. ASP.NET內存管理技術
- 2. 客戶端計算沒有暴露代碼?
- 3. 由AWS Elastic暴露的源代碼Beanstalk
- 4. 非超級用戶訪問Django管理
- 5. 組件暴露給所有用戶嗎?
- 6. 將django admin暴露給用戶。有害?
- 7. 有關MATLAB代碼的迴歸技術問題
- 8. oAW代碼生成技術
- 9. 在不同的過程中使用管理器/代理暴露對象
- 10. 代理/存根是否暴露接口?
- 11. 什麼jQuery被暴露?
- 12. 相關的技術術語
- 13. 應用級複製技術
- 14. 項目管理+供技術人員和非技術人員使用的SCM?
- 15. 將Builder類暴露給客戶端代碼
- 16. 用於查找/避免託管代碼中的非託管泄漏的技術
- 17. HTML佈局技術(管理面板)
- 18. 狀態管理技術ASP .NET MVC 2
- 19. HTTP錯誤:404 NOT_FOUND RequestURI =/Solr的/管理/技術碼頭://
- 20. 編碼技術
- 21. JavaScript編碼技術或錯誤代碼?
- 22. 揭露非託管代碼的常數來管理的Dll
- 23. 暴露用戶控件中的控件
- 24. 暴露的ContentPlaceHolder在用戶控制
- 25. 的Greasemonkey - 等待頁面被執行代碼技術
- 26. 在django中暴露密碼
- 27. 任何人都可以推薦基於TortoiseSVN的非技術用戶的源代碼管理教程嗎?
- 28. unix管道有效的調試技術?
- 29. Scrum:由非技術性PO管理的積壓項目中的技術項目?
- 30. 沒有的typedef暴露它
是否有任何理由發送非管理員用戶代碼相關的管理員的東西呢?爲什麼不只是向基本用戶發送基本信息,並向管理員用戶發送管理信息? –
通常,對於單頁應用程序,所有代碼都會立即下載。包括模型,模板,控制器,路由器等。分離會很有趣,但我想這意味着實質上你會構建兩個SPA。服務器呈現的代碼在這方面很好,因爲最終用戶不知道爲什麼或者如何生成事情。對於客戶端應用程序,所有代碼都在客戶端。 – patbaker82
是的,我已經處理了比我想要更多的SPA,並且從未遇到過這個問題,所以對我來說這似乎很奇怪。不過,我從未想過將所有內容都作爲SPA的先決條件。我根據需求加載了很多很少使用的東西(包括管理員)。 –