|
|
|
| Как верно составить регулярное выражение, чтобы не пропускало русские буквы?
Мин и макс длину я проверяю вручную.
П.С. Что еще не желательно пропускать для пароля или русских символов достаточно? | |
|
|
|
|
|
|
|
для: TetRiska
(23.09.2011 в 17:54)
| |
Но еще нужно не забывать о других символах как $#@! и тд. Как их включить в список разрешенных? И какие безопасны, а какие нет? | |
|
|
|
|
|
|
|
для: TetRiska
(23.09.2011 в 19:10)
| | a-zA-Z0-9_ от 3 до 20 символов
"_" - вроде безопасен
проверка {min , мах} в ножную)) | |
|
|
|
|
|
|
|
для: f111
(23.09.2011 в 21:16)
| | Жека, привет!
Вообще-то, для пароля сойдут любые символы. Потом его можно md5 или sha1. Потом, разумеется, strrev, substr, и т.д...
По моему глубокому убеждению, нельзя хранить пароли пользователей в первозданном виде. Это этически некрасиво и небезопасно для самих пользователей.
Лично я никогда не буду регистрироваться на сайте, который будет указывать мне, какие символы вписывать в поле "Пароль". | |
|
|
|
|
|
|
|
для: Deed
(23.09.2011 в 21:44)
| | согласен, спасибо | |
|
|
|
|
|
|
|
для: Deed
(23.09.2011 в 21:44)
| | Привет.
Я своим примеров всего лишь хотел в очередной раз разрекламировать свой любимый метасимвол \w, заодно показал какие символы он "пропускает", указал что знак подчёркивания вроде как безопасным считается, и показал как проверять мин/макс, и больше ничего!
Если используется РВ, то тогда не понятно зачем использовать strlen (ну или то чем пользуется автор), хотя может и есть смысл....для меня он не очевиден.
Прошу прощение что ввёл в заблуждение, но когда писал своё предыдущее сообщение, про безопасные символы вообще не думал (ну кроме как про символ подчёркивания), всё равно автору темы решать что пропускать, а что нет.
P.S. ф. strrev ни разу не пользовался)) а резать substr-ом пароль, чёт не нравится мне идея.
пользователь будет вводить напрасно лишние символы, лучше его предупредить (имхо). | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: Deed
(24.09.2011 в 09:24)
| | после деревни сил еле хватает на свой код, а на чужой так вообще, но заранее тебя поздравляю))
на codepad.org заглянул, улыбнуло) | |
|
|
|
|
|
|
|
для: f111
(24.09.2011 в 20:45)
| | Неуж-то в Завидово был?? | |
|
|
|
|
|
|
|
для: Deed
(24.09.2011 в 21:07)
| | ты как минимум страной ошибся) | |
|
|
|
|
|
|
|
для: f111
(23.09.2011 в 21:16)
| | мин макс я вручную проверяю и уведомляю если что
от проверки отказался, ибо это проблемы пользователя что он вводит, моя проблема это верно его принять, обработать и запихнуть в базу | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: f111
(24.09.2011 в 00:24)
| | перед тем как пихнуть в md5 я проверяю мин макс через strlen и информирую если что
П.С. а зачем добавлять еще что-то, чтобы потом отсекать при авторизации? думаю лишнее.....единственное когда человек регается я отправляю хешь, вот в него я уже добавляю что-то свое | |
|
|
|
|
|
|
|
для: TetRiska
(24.09.2011 в 10:29)
| | А зачем в этом случае проверять? substr(), и пусть юзер хоть "Войну и мир" в пароль пишет. | |
|
|
|
|
|
|
|
для: TetRiska
(24.09.2011 в 10:29)
| | >чтобы потом отсекать при авторизации?
при авторизации, тоже добавляешь этот "секретный код", мало ли, вдруг хацкеру удастся получить хэши, тогда он точно не сможет простым перебором найти твой пароль.
вдруг у тебя пароль "кузя", он проверит это слово у себя, а хеши и не сойдутся.
может и зря я так делаю, это всего лишь предложение), заставлять и уговаривать никого не собираюсь, а конкатенация и пара символов ни хешу, ни скрипту в общем не навредят. | |
|
|
|