Подскажите пожалуйста Я сделал форму входа на сайт по логину и паролю. Стандартная схема: Логин и пароль сверяются с БД на mysql, если совпадает, то всё отлично... Как можно защитить эту форму? Так как в поле логин и пароль, могут же вводить что угодно. Как вариант может убирать все пробелы из отправленного формой?
@Reken, ну и пусть вводят что угодно Просто не совпадёт. Пробелы удалить можно. Тут главное - как у вас проверка внутри организована, уязвимо к SQL-инъекциям или нет. --- Добавлено --- Если всё сделано правильно, то вам вообще по барабану, что придёт на авторизацию должно быть
пробелы убрать можно, но только в том случае, если ты их убрал при регистрации. -- К.О. P.S. форма аутентификации, Карл
Чем тебе пробелы помешали? Ну по краям можешь убрать, если убирал их при регистрации, как выше написали. Если никто не вносил данные с такими пробелами, можешь и сейчас это сделать, не забыв добавить это и к регистрации. Что действительно не помешает сделать, так это ограничить число возможных ошибочных попыток в течение какого-то промежутка времени. P.S. «Форма входа» – норм. --- Добавлено --- P.P.S. Чтобы не париться с SQL-инъекциями на пароле, можно получить запись по логину, а потом сравнить пароли/их хэши. --- Добавлено --- Еще, чтобы снизить возможную нагрузку, можно предварительно делать проверки строк на непривышение макс. разрешенных для этих строк длин.
Ну в пароле они в принципе не возможны, если всё правильно сделано (т.е. если есть хеширование). @Reken Кстати, действительно. Сейчас не проверяют пароль в запросе, а находят пользователя по логину, и потом сравнивают хеш. Причём и для хеширования и для сравнения рекомендуется использовать соотв. функции: https://www.php.net/manual/ru/function.password-hash.php https://www.php.net/manual/ru/function.password-verify.php https://www.php.net/manual/ru/function.password-needs-rehash.php
Ты просто не видел мега бредовые хэши с весьма специфическими символами в их алфавите Я в общем-то сам хотел написать то, что ты написал, но вовремя вспомнил, что хэши тоже бывают разные.