Потенциально опасные/безопасные символы
С мылом и логином всё ясно. А вот пароль... :)
В общем, я сделал следующее ограничение на символы [a-zA-Z0-9_\-] (латиница, цифры и знаки подч. и тире.). Но как-то не очень мне это нравится... Просто хотелось бы дать возможность своим пользователям придумывать более сложные пароли. Но вот как сбалансировать между безопасностью сайта и безопасностью учётных данных пользователей не знаю.
В общем хотел спросить - какие символы потенциально опасные (или какие безопасные) в отношении взлома, SQL-инъекций и прочей лабуды???
Да, чуть не забыл, :) какую максимальную длину посоветуете для логина (по соображениям баланса возможностей/необходимости/здравого смысла)? У меня сейчас 3-50 символов. :eek:
А для пароля могут быть любые символы - ведь вы же его все равно храните в виде md5 хэша... Ведь так?... )))
Цитата: RussianSpy
А для пароля могут быть любые символы - ведь вы же его все равно храните в виде md5 хэша... Ведь так?... )))
Ну почти. Я использую функцию PHP - crypt ( string $str [, string $salt ] ) со вторым аргументом, определяемым мной в конфигах. Именно из-за второго аргумента я решил, что эта методика хеширования наиболее надёжная, т.к. "salt-последовательность, на которой основывается шифрование" может быть известна только мне. Хотя хеширование, по идее итак "необратимое шифрование", что по алг. UNIX, что MD5. Не знаю, что лучше. Может я параною :D
Кстати, что лучше использовать - crypt или md5 ???
А насчёт символов, хоть и пофигу, но интересно все равно было бы узнать на будушее. Может ссылку дадите какую? :)
соль так же просто добавить
Код:
$salt = '*&jad hi897231';
$pass = md5($_POST['pass'].$salt);
$pass = md5($_POST['pass'].$salt);
следовательно в пароле символы могут быть любые
в логине - на ваше усмотрение. Но всякие служебные вроде слешей, амперсанда, знака доллара, октоторпа, кавычек всех мастей, включая обратные, и т.п. лучше не допускать. Классического набора буквы латиницы, цифры, знак подчеркивания, тире, собака - вполне достаточно на мой лично взгляд
Спасибо за ответы!
Цитата: Fobos
Кстати, что лучше использовать - crypt или md5 ???
Чем лучше намазывать бутерброд, маслом срезанным с левого бока или правого?
Если вы будете в SQL запросе выводить строку с помощью mysql_real_escape_string (ну или какая у вас там база данных), то символы в логине и пароле могут буть любыми. mysql_real_escape_string - вот лучшая защита от SQL-inject. Тогда на пароль и логин можно ограничений не накладывать.