PHP возможно - regexp
if(!preg_match('/^[a-z0-9_-]+$/i',$login die('wrong login');
спасибо... сам бы пол часа мучался
ешё пару таких постов и я начну путать тебя с Коряном
+1
согласен полностью, но регекспы - это для меня темная лошадка (мануал под руками херовый....)
лично у меня мануалов под рукой сколько угодно, но всё равно всё только на примерах разбирать приходится. Благо, в онлайне всегда есть гуру, который напишет и поправит. А без этого нормальному человеку регэкспы не понять. Ну, как и линукс, впрочем
для этого есть политкорректный термин "интеллектуальное большинство"
'/^[a-z0-9_-]+$/i'Обычно еще ограничение на длину бывает, тогда надо вместо '+' писать '{m,n}', скажем
'/^[a-z0-9_-]{6,20}$/i'
А кстати расскажите, откуда берутся вообще эти ограничения на логин? Боимся инъекций? Ну тогда достаточно запретить кавычку кажись и всё. А то столько проблем от этого, например по-моему удобно в логине использовать точку, или еще чего-то...
да, возможно. Именно так. Причем когда несколько раз покажешь какие-то конкретные варианты этому большинству, дальнейших обращений за помощью (в моем случае, правда, там Perl, с которым я не знаком) становится на порядок меньше. А любые "учебники" не дают абсолютно никакого прояснения
1. sql-инъекция
2. html-инъекция
3. fishing (когда создается бот с похожим именем, и от его имени разводятся остальные)
а в perl то, что называется там регулярными выражениями, на самом деле более мощная штука
какой учебник ты читал?
есть три атаки: ...пиши еще.
ну... я на ФФ учусь - там такого не объясняют. А "учебники" я нарочно взял в кавычки, ибо все они взяты из яндекса по запросу "регулярные выражения Perl". Зато когда я прошу человека написать регэксп под конкретную задачу - там всё понятно. И в следующий раз я под похожую задачу всё пишу уже сам
прикол не понял.
я под похожую задачу всё пишу уже самАга, проверяешь на двух-трех примерах, а потом через месяц выясняется, что всё таки неправильно написал. Уж лучше разобраться один раз, чем заниматься "программированием по аналогии"...
да нет, всё работает... а разобраться - это к ... к... короче таким, которые линукс любят.
Ну то есть пиши что еще знаешь. А то написал ты так написал неясно что сказать то хотел. Я слышал краем уха об этом всем и пока не вижу какое к этому отношение имеет наличие точки в логине, или там каких-нибудь @ ! ? : ; %, русских букв в конце концов...
безопасность испортить не получиться, но отказ в доступе можно попробовать организовать.
т.е. например, запрос: /forum/showprofile.php?user=, при плохом качестве кода, зарегив логин "xxx&user=Vasya" мы будем получать запрос вида /forum/showprofile.php?user=xxx&user=Vasya
русские буквы активно используются при фишинге, когда для компрометации пользователя, например, тебя - регится бот Druхa (где х-русская и от его имени начинаются наезды на пользователей
Но известно, что длина паролей и логина, обычно, не увеличивает защищенности системы, если это заранее не заложено в системе,
поэтому аутентификацию пытаются вынести в библиотеки, например, как это сделано в PAM или PNIAM
русские буквы активно используются при фишинге, когда для компрометации пользователя, например, тебя - регится бот Druхa (где х-русская и от его имени начинаются наезды на пользователейну это сложно назвать все таки инъекцией.
я нигде не утверждал, что fishing - это инъекция
Тут и без регэкспов можно обойтись! Просто создаёшь строку abc...zA..Z0..9 и проверяешь каждый символ логина на наличие в этой строке!
отцы на форум.локал
поэтому лучше наверное проводить валидацию по емейлу русские символы не встретятся точно.
Ну а остальное - остальное так, что бы не мешалось порезать нах....
+ например лично меня бесят всякие умники, у которых в мыле есть точка....
Ибо некоторые серваки отправляют ответ, что такого мыла нет ( И хрен до такого урода допишешься, когда что нить надо...
+ например лично меня бесят всякие умники, у которых в мыле есть точка....это не умники, а правило хорошего корпоративного тона.
Name.domen.zone
вполне нормальный емейл.
Nadomen.zone
или
Ndomen.zone
А точка вообще непонятно зачем была введена... По крайней мере не все почтовые сервера в России правильно с ней работают... Некоторые - просто junctrf.n все, что до нее, а некоторые возвращают ответ о несуществовании такого адреса....
Лично мне хватило описание PCRE в книжке по пхп (читал давно, хотя было вроде понятно, но без практики это было бесполезно описание PCRE в php_manual'е и небольшого опыта чтения/разбора некоторых регэкспов из исходников форума ipb 1.3: это совсем не сложно, по крайней мере, если не лазить в дебри, которые редко требуются.
Короче, разобраться до того уровня, чтобы можно было писать большинство регэкспов, которые могут потребоваться в большинстве случаев, достаточно php_manual_ru.php (файлик ищется в поисковике это же очень просто.
ЗЫ: я фанат Windows .
Оставить комментарий
stm7884696
Надо сделать проверку на вводимый логин при регистрации пользователя - только латинские буквы (большие, малые цифры, подчеркивание и тиреМожете кто нить помочь как это сделать?