#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:
я бы порекомендовал вам кое-что, что я нашел очень полезным, и это просьба
надеюсь, это поможет.