Сужая до широкой темы, у меня есть конкретный вопрос (может быть, немного "шляпа из фольги").
Этот вопрос касается наилучшей практики защиты данных, передаваемых в почтовом запросе между клиентом и сервером. Фон - это веб-приложение, которое я разрабатываю, чтобы узнать больше об узлах и выражениях js.
Хотя пример, который я использую, относится к учетным данным для входа, на самом деле это может быть любая информация, передаваемая в почтовом запросе из формы, отправленной на экспресс-сервер.
Пример:
клиент отправляет данные формы через событие нажатия кнопки на клиенте. Я использую vue для внешнего интерфейса, но это общий вопрос. На странице клиента я также использую (внутри асинхронной функции):
const resp = await axios.post("http://someurl.com/login", {client:email, pw:pw});
в инструментах разработчика Chrome на вкладке сети я могу видеть полезную нагрузку запроса. В примере это выглядит так:
{client:"some email address", pw:"some password"}
Было бы лучше передать полезную нагрузку, уже зашифрованную / закодированную? Затем он расшифровывается / дешифруется на сервере?
Для передачи конфиденциальной информации лучше использовать подписанный файл cookie?
План, если я когда-нибудь выполню все это, это использовать Let'sEncrypt для HTTPS.
Разумно ли полагаться только на HTTPS для защиты этого типа полезной нагрузки?
Для справки, на экспресс-сервере пароль хешируется и сравнивается с хешированной версией из базы данных. Я читал о шлеме и csurf и собираюсь использовать их и в конечном продукте. В этом ответе содержится много полезной информации. Это невероятно удивительно и говорит о важности HTTPS через HTTP.
Любые дополнительные ссылки / мысли / практические соображения приветствуются.