
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
HTTPS 트래픽에 사용되는 443 포트에서 수신 대기하는 서버를 생성합니다. 다음 스니펫은 포트 80에서 트래픽을 수신하는 HTTP 서버를 생성합니다.
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" ...>