簡體   English   中英

(設計問題)如何分離前端和后端以保護路由(后端)代碼? (Node.js-快速-反應)

[英](Design question) How to decouple front- and back-end to protect routing (backend) code? (Node.js - Express - React)

內容:

我正在建立一個React網站,該網站從Google Sheets API提取信息並將特定的行格式化為數據可視化形式。 由於信息的敏感性,有些列我不想共享,幸運的是,有些方法只能共享指定的列,但這不是為什么我要詢問以下內容:

問題:

我想要一個Node API來處理來自React前端的請求,但是其代碼在客戶端的瀏覽器上不可用(例如,在構建期間創建的bundle.js文件中)。

澄清:我注意到,當在本地運行大多數Node-React應用程序示例並使用webpack構建它們時, 最終會得到一個 bundle.js文件,其中包含在頁面加載時傳遞給瀏覽器的Node請求處理代碼。

提案:

我需要部署兩個單獨的應用程序(一個用於Node,另一個用於React),還是可以將它們保持在一起而服務器代碼對客戶端不可見?

編輯后答案:

您最終得到一個bundle.js文件,其中包含在頁面加載時傳遞到瀏覽器的Node請求處理代碼。

這是不正確的。 我假定為請求處理代碼的代碼是客戶端請求調用代碼。

您可以添加一個簡單的身份驗證系統。 已經有大量的Node軟件包,因此無需自己實現。

具體來說,這將防止后端將敏感數據發送到未經授權的請求。

編輯:為澄清起見,在Node.js服務器上運行的代碼不會公開發送,它將在您的服務器上運行並將其輸出發送到前端。

編輯2:好像我誤解了你的問題。
如果您的代碼目前尚未解耦,則需要將其解耦。 React.js項目的所有代碼都發送到瀏覽器。 由於沒有后端可以處理任何種類的訪問邏輯,因此任何此類邏輯都必須在前端(React.js)中,可以很容易地繞過它。

它已經解耦了。 您無需執行任何操作

請注意,node.js服務器代碼的安全性取決於服務器配置,而不是node.js。 如果您通過未加密的文件共享或FTP訪問服務器,則您的節點服務器代碼仍然不安全。

即使使用加密,也要避免使用諸如SSL或TLSv1.0之類的協議(對於FTPS等,請使用TLSv1.3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM