уязвимости метода $_GET

#php #http

#php #http

Вопрос:

Если я использую $_GET функцию для отправки паролей, то помимо того факта, что пароль будет виден в адресной строке моего браузера, существуют ли еще какие-либо уязвимости безопасности, которых еще нет в $_POST методе? Потому что в любом случае пароль будет виден только в браузере пользователя и никому другому.

Комментарии:

1. И в журнале прокси-сервера, и в истории браузера пользователя, … Просто не делайте этого

2. да, не очень хорошая идея. 1 @zerkms

3. По крайней мере, MD5, прежде чем вставлять его в URL, если это действительно необходимо.

4. Говоря по-другому, если вы выполняете аутентификацию / вход в систему пользователя, вы должны использовать POST. Если вы создаете нового пользователя, вы должны использовать PUT . Для выборки используется глагол GET. Он не должен иметь никаких побочных эффектов.

5. если они войдут в систему с любого компьютера, который не является их собственным персональным компьютером, то их информация будет раскрыта, если они не предпримут необходимые шаги для очистки браузера, о чем обычный пользователь может не знать, и когда кто-то заходит на сайт, они ожидают, что их информация будет в безопасности. пользователю не нужно предпринимать ненужные шаги, такие как очистка браузера, хотя они могут захотеть в любом случае.

Ответ №1:

Даже если вы отправите пароль с помощью POST, он будет отправлен в виде обычного текста. Если вы хотите отправить его безопасно, вам следует использовать SSL.

Комментарии:

1. даже сообщение с ssl уязвимо для атак типа «человек посередине», cain amp; able хорошо справляется с этим

2. ^ это обязанность клиента защитить свой логин.

3. @Lawerence Да, я знаю, что нет ничего пуленепробиваемого. Существуют кейлоггеры, скринкаптеры, социальная инженерия, кто-то может наблюдать за вами через плечо и т.д. Но использование ssl предотвратит подслушивание с некоторой степенью уверенности.

Ответ №2:

С использованием $_GET метода URL веб-сайта will be logged in history or browser and proxy servers это будет невозможно с $_POST .

$_GET пароль добавляется в URL, а $_POST пароль отправляется в следующем пакете, поэтому в обоих методах пароль отправляется открытым текстом, поэтому решение заключается в $_POST использовании SSL для шифрования сообщения.

Комментарии:

1. Это отчасти очевидно, но я даже не думал о том, что переменные GET сохраняются в истории, когда я писал свой ответ. Хороший улов, чувак. 1

Ответ №3:

Обычно для отправки значений следует использовать POST, но, в конце концов, все является отправленными данными. Либо предоставляется через POST, либо GET, его необходимо очистить.

Ответ №4:

Вам действительно следует отправить регистрационную информацию по почте. Как вы сказали, значения GET передаются через URL. Значения POST отправляются через заголовки HTTP-запроса. Хотя это и не «безопасно», это немного более прозрачно, чем указывать его в URL.

Лучший способ для вас — отправить его через POST и использовать SSL, чтобы информация не передавалась открытым текстом по проводам.

Ответ №5:

я бы порекомендовал вам кое-что, что я нашел очень полезным, и это просьба

http://phpsec.org/projects/

надеюсь, это поможет.