Django login/ Payload
Это странно. Я много раз создавал функции входа в систему, но никогда не замечал этого.
Когда мы указываем имя пользователя и пароль в форме и отправляем ее. и она попадает на сервер в виде Payload вот так
csrfmiddlewaretoken:
mHjXdIDo50tfygxZualuxaCBBdKboeK2R89scsxyfUxm22iFsMHY2xKtxC9uQNni
username: testuser
password: 'dummy pass' #same as i typed(no encryption)
Я получил это в случае Неверные кредиты, потому что логин не удался и он не перенаправляет на другую страницу.
Но затем я попробовал с действительными учетными данными и включил функцию сохранения журнала в сетевой вкладке Chrome. затем я проверил там и все еще вижу точно введенные Username и password. в первый раз я подумал, что, возможно, я пропустил какую-то логику шифрования или что-то еще, чего я не знаю.
Но потом я попробовал использовать функцию входа в систему нескольких известных технических компаний, и я все еще могу видеть креды в полезной нагрузке. Разве это не неправильно?
Это должно быть в зашифрованном формате, правильно?
Данные, которые вы видите в Chrome DevTools, получены до того, как они были зашифрованы.
Если бы вы, скажем, запустили tcpdump или wireshark при выполнении запроса, вы бы увидели, что он шифруется по сети, но не шифруется на вашей локальной машине.
Когда вы вводите имя пользователя и пароль в html-форму и нажимаете submit, они еще не зашифрованы.
Также вы можете посмотреть данные ответа (код состояния, заголовки, полезную нагрузку) на эти запросы в Chrome Dev Tools. Это показывает, как выглядят данные после расшифровки.
Вот похожий ответ на похожий вопрос: https://stackoverflow.com/a/16306925/9638991.
Все на фронт-энде - сторона браузера видна всем, и инструменты разработчика не являются исключением. Используйте HTTPS в целях безопасности.