
Ich habe einen Unbuntu-Server mit NodeJS, auf den ich einige Dateien hochladen möchte. Einige der Dateien enthalten Daten, die ich lieber nicht durchsickern lassen würde, aber es wäre kein großes Problem, wenn jemand die Dateien in die Hände bekäme. Mein NodeJS-Server ist derzeit ein einfacher HTTP-Server, aber soweit ich weiß,Dieser Artikel, es sollte möglich sein, die Verschlüsselung von HTTP-Datei-Uploads zu erzwingen. Bedeutet das, dass ich eine Datei mit einer HTTP-POST-Anforderung hochladen kann und sie verschlüsselt ist? Woher weiß der Datei-Upload, dass die Datei verschlüsselt werden muss?
Die HTTP-Anfrage wird von Microsoft Flow gesendet.
Antwort1
Das HTTP-Protokoll arbeitet auf dem TCP-Protokoll. HTTPS arbeitet auf TLS. Die zugrunde liegenden Verbindungen sind also unterschiedlich. Um Ihr Formular mit HTTPS-Verschlüsselung zu übermitteln, müssen Sie Ihre HTTP-Verbindung mit dem HTTP-Header „Upgrade“ auf HTTPS aktualisieren.https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header
HTTP wurde nicht zum Verschlüsseln von Daten entwickelt.
Bezüglich Ihrer NodeJS-Frage schauen wir uns den Codeausschnitt hier an
var https = require('https');
https.createServer(options, app).listen(443);
Das Modul https
erstellt einen Server, der auf Port 443 lauscht, der für Ihren HTTPS-Verkehr verwendet wird. Der nächste Codeausschnitt erstellt Ihren HTTP-Server, der auf Port 80 auf Verkehr lauscht
var http = require('http');
http.createServer(app).listen(80);
Sie haben jetzt also zwei Server, die auf zwei verschiedenen Ports lauschen. Um meine Antwort abzuschließen: HTTP und HTTPS werden bei unterschiedlichen Verbindungen verwendet. Ich fürchte, Sie können Ihre HTTP-Sitzung nicht spontan in HTTPS umwandeln.
Antwort2
Ich denke, die einfachste Lösung könnte darin bestehen, action
die https-URL festzulegen.
<form action="https://<YOUR_Server/post-handler" method="post" ...>