Без SSL данные, отправленные через POST
, эквивалентны данным, отправленным через GET
, или, другими словами, вообще не зашифрованы.
Я считаю, что скрипт php, который отправляет форму, и сама форма должны находиться в каталоге на веб-сервере, который настроен с помощью SSL. У вас также должен быть включен сертификат SSL для этого веб-сайта.
Из Википедия
HTTP не является защищенным и подлежит человек посередине и подслушивание атаки, которые могут позволить злоумышленникам получить доступ к учетным записям веб-сайта и конфиденциальная информация. HTTPS - это разработан, чтобы противостоять таким атакам и считается защищенным от таких атаки.
Если вас беспокоит, что кто-то перехватит ваши данные, используйте HTTPS.
В случае формы входа я использую javascript для хеширования пароля перед отправкой формы. Это затруднит доступ к нему.
вы можете прочитать отправленные данные с помощью Wireshark - http://de.wikipedia.org/wiki/Wireshark если вы отправили данные формы без https.
Я подумал, что информация (имя пользователя и пароль), отправленные по почте, являются полностью безопасный
Неверно. Данные, отправленные через POST, практически так же небезопасны, как отправленные через GET. Единственное (незначительное) отличие состоит в том, что данные GET немного более "доступны" через истории URL-адресов и, возможно, журналы. Но если кто-то может обнюхать ссылку, он может очень легко шпионить за пользователем и паролями, отправленными через http-запрос (POST или GET) , если не используется SSL (https: //).
Ваш пароль не безопасен, если вы просто отправляете его с помощью POST - все еще видимый и незашифрованный, хотя и немного менее очевидный.
Отправка незашифрованного пароля через POST - самый небезопасный, но все же относительно разумный способ сделать это. (да, есть менее безопасные способы, но они совершенно безумны - отправка формы с паролем через GET примерно так же безопасна, как транслировать ее по телевидению или печатать в газете).
Вот как выглядит типичный запрос GET:
GET http://somedomain.example.com/path/file?here=are&the=GET¶meters=.
X-Some-Header: header content
X-Another-Header: 1
Вот похожий запрос POST (обратите внимание, что вы можете отправлять параметры GET и POST в запросе POST):
POST http://somedomain.example.com/path/file?here=are&the=GET¶meters=.
X-Some-Header: header content
X-Another-Header: 1
Content-Length: 40
with_POST&=the&content=is&here_in=the&request=body
Как видите, HTTP - это полностью Протокол открытого текста - данные не шифруются, поэтому любой может просматривать и / или изменять их во время передачи. Доступ к коду совсем не нужен - просто наблюдайте за трафиком, и ваши данные будут там, чтобы их мог увидеть любой (вы можете проверить это с помощью таких инструментов, как Wireshark, который позволяет просматривать сетевой трафик).
Чтобы избавиться от необходимости доверять всему миру, был создан протокол HTTPS (S означает «Secure»), который обеспечивает шифрование («только отправитель и получатель могут его прочитать») и аутентификацию («сервером действительно является yourserver.example. com, а не evilserver.example.net ").
HTTPS - это оболочка для HTTP: где с HTTP клиент подключается к веб-серверу и начинает диалог, HTTPS сначала устанавливает безопасный туннель SSL, а HTTP-соединение проходит через него. Настройка HTTPS-сервера немного сложнее, чем HTTP, см., Например, эта статья .