Здесь применимы многие типичные предостережения ... упоминать их не повредит.
Во-первых, vanilla md5 для хеширования вашего пароля, безусловно, не лучший способ защитить ваш пароль пользователя в базе данных.,Существует множество вопросов о стековом потоке, которые документируют лучшие подходы, и, хотя существуют разные мнения, они все более безопасны, чем обычный md5, несоленый хеш.
Безопасный хеш и соль для паролей PHP
Почему бы не использовать AES для шифрования паролей в PHP?
Кроме того, вы не выполняете дезинфекцию входных данных sql, оставляя базу данных открытой для атак внедрения sql.Неудобный пользователь может манипулировать вашей вставкой, чтобы удалить таблицы или изменить структуру данных.Вам необходимо экранировать эти значения с помощью mysql_real_escape_string () или использовать совершенно другую систему доступа к базам данных, например PDO, с параметризованным sql.
Как я могу предотвратить внедрение SQL в PHP?
При этом ваш запрос должен проверять наличие строки «Пользователь», в которой указаны правильные имя пользователя и пароль, что обычно достигается путем выполнения сначала запроса COUNT и обеспечения присутствия пользователя в базе данных с действительными учетными записями.
Вы должны убедиться, что столбцы базы данных имеют правильную длину и тип данных для хранения хэшей для паролей.Усечение любого из них может уничтожить данные.
Надеюсь, это поможет - внедрение SQL может быть особенно неприятным!