我一直在使用React和React-Router將單頁應用程序放在一起,我似乎無法理解如何保護這些應用程序。保護建立在react/react-router上的單頁應用程序
我發現了一個很好的清除blog post,它顯示了一種方法,但它對我來說看起來並不太安全。基本上,該文章中介紹的方法是限制用戶未被授權訪問的組件的渲染。作者寫了幾個更多的帖子,這些帖子是這個想法的變體,將其擴展到React-Router路由和其他組件,但在他們的心中,所有這些方法似乎都依賴於相同的有缺陷的想法:客戶端代碼決定要做什麼根據構成組件時商店中的數據。這對我來說似乎是一個問題 - 如何阻止一個有進取心的黑客從代碼中搞亂訪問內容?
我想到了三種不同的方法,其中沒有一個我很高興:
我肯定會寫我的授權碼以這樣的方式將客戶端代碼是不斷檢查與服務器進行授權,但這似乎是浪費。
我可以設置應用程序,以便只有在服務器驗證客戶端有權訪問該代碼後,模塊纔會從服務器推送到客戶端。但是,這似乎涉及將我的代碼打包成一百萬個小模塊,而不是一個很好的單一包(我正在使用browserify)。
某些服務器端渲染系統可能會工作,這將確保用戶只能看到服務器已決定有權查看的頁面。但是這看起來很複雜,而且看起來像是倒退了一步(如果我想讓服務器完成所有工作,我可以編寫一個傳統的Web應用程序)。
那麼,什麼是最好的方法?其他人如何解決這個問題?