Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: опять проверяем логин пароль
 
 автор: Nextia   (15.02.2011 в 05:51)   письмо автору
 
 

необходимо проверить логин пароль пользователя на недопустимые символы.
логин
латинские символы, цифры тире и подчеркивания от 4 до 20 символов
preg_mach("|^[a-zA-z0-9 - _]{4,20}$|i " ,$str);
но не должен содержать русских букв звездочек скобочек, процентов, и собак(@)
[^А-Яёа-яЁ*<>@ %]
пароль только латинские буквы и цифры
preg_mach("|^[a-zA-z0-9 ]{4,20}$|i " ,$str);
не получается все условия собрать вместе :-(

  Ответить  
 
 автор: SHAman   (15.02.2011 в 09:36)   письмо автору
 
   для: Nextia   (15.02.2011 в 05:51)
 

Вам надо сосредоточиться на чем-то одном. Либо проверять на наличие только нужных символов, либо проверять на наличие ненужных.

То есть либо
if(preg_match()) {
    #все хорошо
}


Либо
if(preg_match()) {
    #все плохо
}


Классы символов и квантификаторы вы правильно поставили. Так что осталось выбрать что вы будете проверять: наличие запрещенных символов или соответствие разрешенным.

  Ответить  
 
 автор: Trianon   (15.02.2011 в 11:44)   письмо автору
 
   для: Nextia   (15.02.2011 в 05:51)
 

у пароля любые символы допустимы.
Владелец ресурса паролем не распоряжается.

Какую цель Вы преследуете, ограничивая набор символов пароля (тем более - ограничивая так жестко)?

  Ответить  
 
 автор: Deed   (15.02.2011 в 20:21)   письмо автору
 
   для: Trianon   (15.02.2011 в 11:44)
 

Вероятно, решено хранить пароли юзеров в первозданном виде и осуществляется попытка избежать SQL-уколов.
Можно обрабатывать строку $_POST['password'] хотя бы функцией strrev(md5()). Ну, или как-то иначе.

[поправлено модератором]

  Ответить  
 
 автор: Trianon   (15.02.2011 в 21:39)   письмо автору
 
   для: Deed   (15.02.2011 в 20:21)
 

>Вероятно, решено хранить пароли юзеров в первозданном виде

Это достаточно вызывающее предположение. Без достаточных данных я бы такими предположениями бросаться не рискнул.

Но даже если так, то что?
В первозданном виде очень много чего приходится хранить. Тексты статей, тем топиков, реплик и прочее и прочее и прочее.

>...и осуществляется попытка избежать SQL-уколов.

И что, хранение в первозданном виде - повод чего-то бояться?
Если корректно формировать SQL-запросы, никакие уколы не страшны.
Если формировать их некорректно - так или инача рано или поздно выйдет лажа.

Всё это никак не умаляет того факта, что чужие пароли вредно, как хранить, так и ограничивать в допустимом алфавите и длине.

  Ответить  
 
 автор: Nextia   (16.02.2011 в 02:12)   письмо автору
 
   для: Trianon   (15.02.2011 в 11:44)
 

>у пароля любые символы допустимы.
>Владелец ресурса паролем не распоряжается.
>
>Какую цель Вы преследуете, ограничивая набор символов пароля (тем более - ограничивая так жестко)?
Пишется веб интерфейс к весьма узкоспециализированной системе, которая не понимает русских букв (в любой кодировке) и использует некоторые спец символы как служебные команды.
Сами знаете что можно сделать с 20 символами в любой Unix системе

  Ответить  
 
 автор: Trianon   (16.02.2011 в 08:06)   письмо автору
 
   для: Nextia   (16.02.2011 в 02:12)
 

B у этой системы собственный формат пароля? Верится с трудом.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования