最近我一直在研究node.js,REST API和WebSockets以進一步瞭解後端和前端Web開發的知識。嘗試使用最佳實踐,我發現REST API始終處於運行狀態。現在我的問題,我似乎不明白如何妥善解決。安全地分離後端和frotend(node.js服務器)
舉個例子,我想讓客戶機/服務器解耦,爲此我在後端實現了一個REST API,這樣我的前端就可以訪問並獲取數據進行渲染。具體(虛構)例子:可以說我想建立一個出租服務網站。現在我想爲我的前端設置一個端點來訪問某些產品的信息,比如說到目前爲止租用的自行車的數量。我希望能夠在前端顯示(通過REST API的幫助),但我不想讓其他調用此REST API的人能夠獲取數據(因爲間諜活動是一項嚴重的業務我想保留那些邪惡的東西,是的,他們可以網絡爬行,但是我們可以說是bla bla)。因此,本質上我希望localhost
機器能夠訪問(部分)REST API,但不能訪問其他任何人。事情變得複雜起來,因爲我也希望人們能夠在我的網站上創建一個用戶,所以我希望有其他終端可以不受限制地訪問,因爲我在想,如果在某個時刻, d喜歡有一個與該服務集成的移動應用程序。那麼限制所有請求到localhost
將是不可行的。
你會如何設計一個安全的服務器/客戶端作爲這個?或者你認爲將REST API暴露給其他人(邪惡的)並不是什麼大不了的事情?
以上代碼也適用於WebSockets。我知道REST API都很好,很整潔,但我認爲未來在於接近實時的連接,所以我同樣對WebSockets感興趣(當然,通過更高級別的模塊,Socket.io,SockJS等)。
您的客戶端是否全部公開或受限於登錄機制? –
客戶端將部分公開(考慮網站類型的網站),部分通過身份驗證限制網頁。但問題並不在於此。也許我不清楚,請參閱[我的其他評論](http://stackoverflow.com/questions/34116494/securely-decouple-backend-and-frotend-node-js-server?noredirect=1#comment55986151_34116882) – razvanc