Подтвердить что ты не робот

Защита и/или шифрование (скрытие) переменных POST в запросе ajax jQuery

У меня есть пригласительная форма в веб-приложении, над которым я работаю. В этой форме приглашения пользователь должен выбрать учетную запись электронной почты, а затем ввести имя пользователя и пароль. Эти данные отправляются как переменные POST через запрос ajax с использованием jQuery. Проблема в том, что я могу видеть введенный пароль (а также другие переменные POST) в виде простого текста, используя плагин Mozilla FireBug.

Я считаю, что возможность видеть пароль в виде простого текста (в Firebug) не идеальна. Есть ли способ предотвратить это? Я попытался сделать вызов ajax из страницы, обслуживаемой через HTTPS, и сделал запрос по HTTPS, но я все еще вижу все переменные POST в текстовом виде в Firebug.

Можно ли каким-то образом зашифровать эти переменные на стороне клиента, а затем расшифровать их на стороне сервера? Или есть другое решение?

4b9b3361

Ответ 1

Если вы используете HTTPS, нет необходимости беспокоиться (пока HTTPS правильно настроен, но это не относится к этому вопросу).

Вы можете увидеть значения в Firebug, потому что Firebug может видеть заголовки, отправленные вашим браузером, но никто, кроме браузера, не может прочитать эти данные.

На самом деле вы не можете скрыть значение от Firebug, потому что браузер должен знать, что отправить, и Firebug может получить доступ ко всему, что может сделать ваш браузер.

Ответ 2

Вы всегда сможете увидеть все свои переменные в Firebug. Это означает, что каждый может видеть только свой собственный пароль, если он использует Firebug, поэтому он не является уязвимостью.

Не заново изобретайте TLS/SSL. Просто используйте HTTPS, и он сделает именно это: зашифруйте эти переменные на стороне клиента, а затем расшифруйте их на стороне сервера.

Ответ 3

Вы используете Firebug на стороне клиента для тестирования, и если вы используете HTTPS для отправки данных post, чтобы они были в зашифрованном виде при отправке на сервер, поэтому вам не нужно беспокоиться, человек нюхает атаку, чтобы восстановить пароль в виде обычного текста, если вы используете HTTPS.

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

Ответ 4

Возможно, эта страница поможет: http://www.jcryption.org

Эта библиотека позволяет шифровать данные и отправлять с помощью ajax get/post, поскольку переменные зашифрованы, очень сложно угадать данные.

Библиотека использует концепцию открытого/закрытого ключа с помощью openssl.

Я надеюсь, что это будет полезно для кого-то.

Ответ 5

Ваши переменные зашифрованы для инструмента или программного обеспечения, которое ведет себя как человек в середине. Плагин вашего браузера или браузера, например, firebug или google chromes, запрашивает и контролирует панель мониторинга, не ведет себя как человек в середине. Скорее они действительный клиент, у которого есть ключ для дешифрования ответа от сервера или шифрования данных перед отправкой на сервер.

Если вы хотите проверить, зашифрованы ли ваши данные или нет, вы можете использовать инструмент, например скрипач или charles, в качестве прокси-сервера для веб-отладки. С помощью этих инструментов вы можете легко увидеть данные, идущие на сервер https, и ответ от сервера зашифрован.