
我有一個運行 NodeJS 的 Unbuntu 伺服器,我想在其中上傳一些檔案。有些文件包含一些我希望不被洩露的數據,但如果有人掌握了這些文件,這不會是一個大問題。我的 NodeJS 伺服器目前是一個普通的 HTTP 伺服器,但據我了解本文,應該可以強制加密 HTTP 檔案上傳。這是否意味著我可以使用 HTTP POST 請求上傳文件,並且該文件已加密?文件上傳怎麼知道要加密檔案?
HTTP 請求是從 Microsoft Flow 傳送的。
答案1
HTTP 協定工作在 TCP 協定之上。 HTTPS 在 TLS 之上工作。所以底層的連結是不同的。為了使用 HTTPS 加密提交表單,您需要使用「升級」HTTP 標頭將 HTTP 連線升級到 HTTPS。https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header
HTTP 並不是為加密資料而設計的。
關於你的nodejs問題,讓我們來看看這裡的程式碼片段
var https = require('https');
https.createServer(options, app).listen(443);
模組https
將建立一個偵聽 443 連接埠的伺服器,用於 HTTPS 流量。下一個片段建立您的 HTTP 伺服器,該伺服器偵聽連接埠 80 上的流量
var http = require('http');
http.createServer(app).listen(80);
現在,您有兩台伺服器偵聽兩個不同的連接埠。總結一下我的回答,HTTP 和 HTTPS 用於不同的連線。恐怕您無法將 HTTP 會話即時變更為 HTTPS。
答案2
我認為最簡單的解決方案是將其設定action
為 https url。
<form action="https://<YOUR_Server/post-handler" method="post" ...>