Лучший способ скрыть / зашифровать чувствительный POST JSON в журнале консоли JavaScript - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть простой веб-сервер (на python) с некоторыми конечными точками API и HTML-страница с формой. Когда пользователь отправляет форму, данные формы отправляются на веб-сервер с помощью ajax POST-вызова через jquery. Конечной точкой API является HTTP.

Для одной из конечных точек API одним из параметров является пароль. Я полагаю, что сама передача данных (из браузера -> сервер) безопасна, так как POST выполняется через https (и вся проверка выполняется на сервере). Однако я хотел бы иметь возможность скрыть пароль, чтобы он не отображался в журналах консоли. (Пример - функция javascript, которая на самом деле выполняет вызов API, является общей функцией, которая может отправлять сообщения на любую конечную точку. В режиме отладки эта функция выведет сообщение json, которое она собирается отправить. Так что в случае, если вы вызываете конечную точку который принимает пароль, пароль будет отображаться в текстовом виде в журнале.)

Мне было просто любопытно, есть ли лучший способ достижения этой цели? Что-то не слишком сложное? Лучше всего зашифровать в браузере, а затем расшифровать на сервере? Или способ просто заставить логи показывать ***? Примечание. Меня не беспокоит перехват данных между браузером и сервером, речь идет только о том, чтобы ничего не отображалось в журналах консоли в виде открытого текста.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Не регистрируйте его.

Как вы сказали, данные в безопасности при транспортировке.Если проблема связана только с журналами, просто исправьте журналы, чтобы не регистрировать конфиденциальные данные.

Также важно, чтобы ваши файлы журналов были такими же безопасными, как и остальная часть вашей системы.Большая часть информации, относящейся к безопасности, может быть получена из необработанных файлов журналов.

0 голосов
/ 20 ноября 2018

Если связь уже HTTPS и вы не беспокоитесь о перехвате данных, то вы, вероятно, можете использовать что-то вроде сериализация :

$(your_password_field).serialize();

Другая идея заключается в том, что если вы используете какой-либо фреймворк с вашим Python-сервером, проверьте их документацию.В этом посте, например, показано, как использовать сериализацию с Django:

https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html

Здесь также есть интересное обсуждение:

Альтернатива SSL - шифрованиепароль с JavaScript отправьте в PHP для расшифровки

...