Использование HTTP POST для форм входа - PullRequest
5 голосов
/ 16 ноября 2009

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

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

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

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

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

Приветствия

Ответы [ 3 ]

5 голосов
/ 16 ноября 2009

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

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

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

0 голосов
/ 19 июня 2014

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

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

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

0 голосов
/ 16 ноября 2009

Базовое предложение: никому не доверяй.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...