2009-11-16 2 views
5

Я регулярно использую стандартную форму для отправки информации для входа по методу HTTP POST, а затем проверяйте ее с помощью php, чтобы проверить правильность данных. Я использую хеш-память md5 для паролей (а иногда и для имен пользователей), чтобы обеспечить некоторую степень безопасности, поэтому я не храню сырой пароль в своем коде, если он просматривается неавторизованным лицом или что-то в этом роде.Использование HTTP POST для форм входа

Я почти уверен, что я только что сделал кого-либо, даже смутно понимая стон безопасности или, по крайней мере, вздохнув от раздражения.

Я недавно работал на форуме с базой данных MySQL пользователей и паролями, пароли хранятся в виде хешей md5, но я беспокоюсь, что при отправке формы входа через HTTP POST возможность перехвата информации здесь. Я знаю о возможностях инъекций MySQL и думаю, что я в безопасности от любых простых атак.

Я не эксперт по безопасности, когда речь заходит об этом, но я хотел бы ограничить возможности перехвата паролей при отправке через HTTP.

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

Приветствие

ответ

5

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

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

В любом случае, HTTPS должен быть правильным и безопасным способом.

+0

Какой лучший хэшер (если это даже термин) для этого, используя php? и каков наилучший способ хеширования ввода перед отправкой? Я бы предположил, хотя мог ошибаться, что я хочу использовать javascript для ввода пользователей и хеширования перед отправкой формы, но если отключить JavaScript, это не сработает. – andyface

+0

Я обычно придерживаюсь стандартных алгоритмов, как для безопасности, так и для совместимости. PHP имеет функцию sha1(), которая подходит для большинства целей. Для этого вам, очевидно, нужен какой-то клиентский код, будь то javascript, апплет, плагин для браузера и т. Д. Я бы пошел на JS. Вы всегда можете предоставить менее безопасную, незашифрованную форму входа в систему. – Patonza

+0

https не кэшируется, не так ли? Я не думаю, что вам нужно это для небольшого форума ... –

0

Основным предложением было бы: не доверять никому.

Итак, проверьте свои данные POSTed для SQL-инъекции, для Javascript в текстовых полях и избегайте простых паролей, хранящихся в вашей базе данных.

+0

«никому не доверяй». - Я никогда не делаю: D Спасибо за советы. – andyface

0

Вы должны реализовать HTTPS для всех видов логинов, хэшированных или нет.

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

Вы всегда можете использовать самозаверяющий сертификат, если для внедрения и внедрения сертификатов HTTPS это проблема.

Смежные вопросы