X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Регулярное выражение для проверки пароля
Kuchuluk
Kuchuluk
Topic Starter сообщение 22.6.2018, 7:42; Ответить: Kuchuluk
Сообщение #1


Здравствуйте. Помогите составить регулярное выражение для проверки пароля. Нужно такое, чтобы можно было использовать заглавные, строчные буквы, цифры и спецсимволы (! @ # $ % - _), только не кавычки и не скобки (всех видов и круглые, и треугольные, и фигурные). В интернете нашел такой вариант:

/(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/

но эта регулярка обязывает использовать как заглавные буквы, так и строчные буквы и цифры. Мне нужно чтобы по желанию можно было вводить, либо заглавные, либо строчные, либо только цифры.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 22.6.2018, 10:39; Ответить: fedornabilkin
Сообщение #2


Вообще правильнее, когда пользователь сам решает какой пароль он установит. Максимум можно уведомить, что он слишком мало символов написал. А все вот эти странные ограничения для кого? Где-то был прикол, как пользователь вводит пароль и каждый раз натыкается на какое-то ограничение. В итоге ему пришлось сделать больше 10 попыток.

Как вариант

[^'"<>\)\(\{\}]{1,}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 22.6.2018, 15:40; Ответить: Kuchuluk
Сообщение #3


fedornabilkin, так я наоборот и хочу упростить. В той регулярке, которую я привел, нужно, чтобы пароль обязательно содержал и заглавную и строчную буквы, и цифру. А я наоборот хочу такую регулярку, чтобы можно одними буквами, неважно в каком регистре, либо одними цифрами, но при желании сделать сложный пароль можно было бы использовать и то, и то, и плюс спецсимволы. Единственно, хочу запретить на ввод символы ( ) > < { } { ], в общем все виды скобок и кавычки, чтобы обезопасить скрипт от инъекций :)

(fedornabilkin @ 22.6.2018, 13:39) *
Как вариант [^'"<>\)\(\{\}]{1,}

В приведенном вами примере можно использовать любые символы, кроме скобок и кавычек? Я правильно понял?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ShowPrint
ShowPrint
сообщение 22.6.2018, 17:06; Ответить: ShowPrint
Сообщение #4


(Kuchuluk @ 22.6.2018, 18:40) *
любые символы, кроме скобок и кавычек?
Насколько я понимаю а приведенной регулярке НЕ запрещены квадратные скобки, если их тоже надо запретить, то видимо будет так:

[^'"<>\)\(\[\]\{\}]{1,}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
miketomlin
miketomlin
сообщение 22.6.2018, 20:29; Ответить: miketomlin
Сообщение #5


Если нужно опред. множество допустимых символов, укажите его в регулярке или просто проверяйте каждый символ на вхождение в множество. См. ф-цию getuserfrompost тут.

fedornabilkin, достаточно при установке пароля сообщить пользователю набор допустимых символов, чтобы не возникало каких-либо недоразумений.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 22.6.2018, 22:20; Ответить: Kuchuluk
Сообщение #6


(fedornabilkin @ 22.6.2018, 13:39) *
Как вариант [^'"<>\)\(\{\}]{1,}
 
Попробовал эту регулярку, пропускает всё - и скобки и кавычки
(ShowPrint @ 22.6.2018, 20:06) *
Насколько я понимаю а приведенной регулярке НЕ запрещены квадратные скобки, если их тоже надо запретить, то видимо будет так: [^'"<>\)\(\[\]\{\}]{1,}

то же самое, пропускает всё 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
miketomlin
miketomlin
сообщение 23.6.2018, 11:54; Ответить: miketomlin
Сообщение #7


Kuchuluk, игнор или вы тупо не поняли самый простой и очевидный способ?

Также, чтобы исключить возможную инъекцию на пароле, можно вынести проверку пароля из запроса. Об этом я также упомянул в статье.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 25.6.2018, 9:05; Ответить: Kuchuluk
Сообщение #8


(miketomlin @ 23.6.2018, 14:54) *
игнор или вы тупо не поняли самый простой и очевидный способ?

Нет, не игнор. Я посмотрел вашу функцию. Там условие стоит

if (isset($_POST['login'])&&isset($_POST['pass'])&&preg_match('#^[0-9a-z]{3,'.AUTH_LOGLEN.'}$#',$_POST['login'])&&preg_match('#^[0-9a-z]{6,'.AUTH_PASSLEN.'}$#',$_POST['pass'])&&($res=mysqli_query($link,'SELECT * FROM `site_users` WHERE `login`="'.$_POST['login'].'" AND `pass`="'.$_POST['pass'].'"')))

я не понял что эта регулярка означает [0-9a-z]{6,'.AUTH_PASSLEN.'} . Разрешены только буквы и цифры?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
miketomlin
miketomlin
сообщение 25.6.2018, 9:23; Ответить: miketomlin
Сообщение #9


Да, расширяйте множество вашими доп. символами. Только черточку нужно писать в начале или в конце множества. Если доп. символы в ASCII смежно расположены с алфавитами букв или цифр, можно их включить в соотв. диапазон. В фиг. скобках указан допустимый диапазон по кол-ву символов – от 6 до AUTH_PASSLEN.
P.S. Скачайте из сети картинку, содержащую основные правила составления регулярок и их примеры.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 25.6.2018, 9:24; Ответить: Kuchuluk
Сообщение #10


miketomlin, то есть если дописать так [0-9a-z-_!@#]{6,'.AUTH_PASSLEN.'} , то будут разрешены букв, цифры и символы -_!@# получается?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐
Сервис для получения SMS на реальные номера USA
13 Chekon 4062 Вчера, 11:48
автор: Chekon
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
1 Rebex 670 17.4.2024, 11:50
автор: Rebex
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2806 16.4.2024, 12:48
автор: diviner99
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34829 15.4.2024, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24412 14.4.2024, 22:52
автор: AdsPower


 



RSS Текстовая версия Сейчас: 19.4.2024, 2:10
Дизайн