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

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

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

 

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

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

тема: Вопрос по регулярке для пароля
 
 автор: TetRiska   (23.09.2011 в 17:54)   письмо автору
 
 

Как верно составить регулярное выражение, чтобы не пропускало русские буквы?
Мин и макс длину я проверяю вручную.
П.С. Что еще не желательно пропускать для пароля или русских символов достаточно?

  Ответить  
 
 автор: TetRiska   (23.09.2011 в 19:10)   письмо автору
 
   для: TetRiska   (23.09.2011 в 17:54)
 

/^[a-z0-9]+$/

Но еще нужно не забывать о других символах как $#@! и тд. Как их включить в список разрешенных? И какие безопасны, а какие нет?

  Ответить  
 
 автор: f111   (23.09.2011 в 21:16)   письмо автору
 
   для: TetRiska   (23.09.2011 в 19:10)
 

/^\w{3,20}$/
a-zA-Z0-9_ от 3 до 20 символов

"_" - вроде безопасен

проверка {min , мах} в ножную))

  Ответить  
 
 автор: Deed   (23.09.2011 в 21:44)   письмо автору
 
   для: f111   (23.09.2011 в 21:16)
 

Жека, привет!
Вообще-то, для пароля сойдут любые символы. Потом его можно md5 или sha1. Потом, разумеется, strrev, substr, и т.д...
По моему глубокому убеждению, нельзя хранить пароли пользователей в первозданном виде. Это этически некрасиво и небезопасно для самих пользователей.
Лично я никогда не буду регистрироваться на сайте, который будет указывать мне, какие символы вписывать в поле "Пароль".

  Ответить  
 
 автор: TetRiska   (23.09.2011 в 21:51)   письмо автору
 
   для: Deed   (23.09.2011 в 21:44)
 

согласен, спасибо

  Ответить  
 
 автор: f111   (24.09.2011 в 00:19)   письмо автору
 
   для: Deed   (23.09.2011 в 21:44)
 

Привет.
Я своим примеров всего лишь хотел в очередной раз разрекламировать свой любимый метасимвол \w, заодно показал какие символы он "пропускает", указал что знак подчёркивания вроде как безопасным считается, и показал как проверять мин/макс, и больше ничего!

Если используется РВ, то тогда не понятно зачем использовать strlen (ну или то чем пользуется автор), хотя может и есть смысл....для меня он не очевиден.

Прошу прощение что ввёл в заблуждение, но когда писал своё предыдущее сообщение, про безопасные символы вообще не думал (ну кроме как про символ подчёркивания), всё равно автору темы решать что пропускать, а что нет.

P.S. ф. strrev ни разу не пользовался)) а резать substr-ом пароль, чёт не нравится мне идея.
пользователь будет вводить напрасно лишние символы, лучше его предупредить (имхо).

  Ответить  
 
 автор: Deed   (24.09.2011 в 09:24)   письмо автору
 
   для: f111   (24.09.2011 в 00:19)
 

Ты трошки не так понял. Вот моя фанкшн:


<?php

//Функция хеширования паролей
    
function pass_hash($pass){
        if(isset(
$_POST['password1'])&&isset($_POST['password2'])){
          
          if(
$_POST['password1']==$_POST['password2']){
              
$_SESSION['pass_mail']=$_POST['password1'];// Для отправки юзеру
              
$pass=$_POST['password1'];
              
$pass=md5($pass);
              
$pass=substr($pass,4,28);
              
$pass=strrev($pass);
              return 
$pass;
          }
           else{
$_SESSION['reg_errors']="Введенные Вами пароли не совпадают!";
                         
$_SESSION['go']=1// Для инклюда reg_forms.php
                         
header("Location:".$_SERVER['HTTP_REFERER']); /*Перекидываем назад*/
                           
exit();
           }
         }
        else {
$_SESSION['reg_errors']="Напишите 2 раза пароль!";
                         
$_SESSION['go']=1// Для инклюда reg_forms.php
                         
header("Location:".$_SERVER['HTTP_REFERER']); /*Перекидываем назад*/
                           
exit();
          }
}
//Функция хеширования паролей


?>


Так что, даже если враги базу взломают, они просто будут чесать репу, не понимая, на фиг вообще они это затеяли.
Например, "Бабушка здорова и кушает компот" превратится в безликую 9c6341fe2b196fec9af50f989f8e:
http://codepad.org/IpGIEpgJ

  Ответить  
 
 автор: f111   (24.09.2011 в 20:45)   письмо автору
 
   для: Deed   (24.09.2011 в 09:24)
 

после деревни сил еле хватает на свой код, а на чужой так вообще, но заранее тебя поздравляю))

на codepad.org заглянул, улыбнуло)

  Ответить  
 
 автор: Deed   (24.09.2011 в 21:07)   письмо автору
 
   для: f111   (24.09.2011 в 20:45)
 

Неуж-то в Завидово был??

  Ответить  
 
 автор: f111   (24.09.2011 в 21:25)   письмо автору
 
   для: Deed   (24.09.2011 в 21:07)
 

ты как минимум страной ошибся)

  Ответить  
 
 автор: TetRiska   (23.09.2011 в 21:51)   письмо автору
 
   для: f111   (23.09.2011 в 21:16)
 

мин макс я вручную проверяю и уведомляю если что
от проверки отказался, ибо это проблемы пользователя что он вводит, моя проблема это верно его принять, обработать и запихнуть в базу

  Ответить  
 
 автор: f111   (24.09.2011 в 00:24)   письмо автору
 
   для: TetRiska   (23.09.2011 в 21:51)
 

TetRiska, я конечно могу заблуждаться, но мне казалось фраза "проверяю вручную" подразумевает проверку данных без использования "вычислительной" техники. (если в тему забредёт филолог буду рад услышать правильную "версию" расшифровки фразы)

>от проверки отказался, ибо это проблемы пользователя что он вводит, моя проблема это верно его принять, обработать и запихнуть в базу

то есть РВ уже не надо?
сразу в md5 "пихаете"? тоже вариант.

p.s. я прежде чем воспользоваться md5 добавляю ещё свои символы к паролю.
md5($pass.'d5b41s65d16');

p.s.s вручную - http://www.classes.ru/all-russian/russian-dictionary-Ozhegov-term-4202.htm

  Ответить  
 
 автор: TetRiska   (24.09.2011 в 10:29)   письмо автору
 
   для: f111   (24.09.2011 в 00:24)
 

перед тем как пихнуть в md5 я проверяю мин макс через strlen и информирую если что

П.С. а зачем добавлять еще что-то, чтобы потом отсекать при авторизации? думаю лишнее.....единственное когда человек регается я отправляю хешь, вот в него я уже добавляю что-то свое

  Ответить  
 
 автор: Deed   (24.09.2011 в 18:20)   письмо автору
 
   для: TetRiska   (24.09.2011 в 10:29)
 

А зачем в этом случае проверять? substr(), и пусть юзер хоть "Войну и мир" в пароль пишет.

  Ответить  
 
 автор: f111   (24.09.2011 в 20:41)   письмо автору
 
   для: TetRiska   (24.09.2011 в 10:29)
 

>чтобы потом отсекать при авторизации?

при авторизации, тоже добавляешь этот "секретный код", мало ли, вдруг хацкеру удастся получить хэши, тогда он точно не сможет простым перебором найти твой пароль.

вдруг у тебя пароль "кузя", он проверит это слово у себя, а хеши и не сойдутся.
может и зря я так делаю, это всего лишь предложение), заставлять и уговаривать никого не собираюсь, а конкатенация и пара символов ни хешу, ни скрипту в общем не навредят.

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

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