Я просто хочу понять, что происходит с данными, когда пользователь отправляет форму входа в скрипт PHP на сервере?
Почему мы хэшируем или шифруем пароль в сценарии на стороне сервера, в то время как пользователь отправляет его на сервер через форму (я думаю, что это сценарий на стороне клиента в виде HTML) в виде простого текста, который может быть прочитан любым хакером?
Что происходит с данными, когда пользователь отправляет форму входа в скрипт PHP на сервере?
Данные передаются по Интернету с одного компьютера на другой. Ни больше ни меньше. То, что сервер делает с представленными данными, зависит от сервера.
Почему мы хешируем или шифруем пароль на стороне сервера …
Чтобы не хранить пароль в виде обычного текста, где его может увидеть кто угодно. Пароль — это секрет, который должен знать только пользователь, и никто другой. Да, для этого нужно перейти на сервер в простой форме, это более или менее неизбежно. Но тогда сервер должен сделать все, что в его силах, чтобы не оставить следов этой простой формы.
…может быть прочитан любым хакером.
Вот почему каждая отправка данных должна быть защищена соединением SSL / TLS. Без этого это действительно просто открытый текст на проводе. Правильно настроенное соединение TLS в безопасной среде практически не нарушается.
Вы правы, может быть атака MITM (Человек в середине), и хакер может в конечном итоге прочитать ваш пароль. Вот почему использование HTTPS (везде) предпочтительнее для обеспечения отправки вашей формы.
Некоторые ссылки, которые могут вам помочь: