Regex для приготовления пюре клавиатуры

Я предложил бы, чтобы Вы пошли наоборот путем записи незаметного JavaScript.

Делают функции из Вашей работы проекта для пользователей с JavaScript отключенными, и когда Вы сделаны, реализуете свои улучшения UI JavaScript.

https://en.wikipedia.org/wiki/Unobtrusive_JavaScript

6
задан Marcel Chastain 21 July 2009 в 15:37
поделиться

10 ответов

Вам, вероятно, лучше проанализировать распределение n-грамм, аналогично обнаружению языка.

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

5
ответ дан 8 December 2019 в 02:00
поделиться

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

Btw. Я не уверен, что вы можете запросить ответы. Поскольку они преодолевают вашу защиту паролем, с ними следует обращаться как с паролями = храниться в виде хэша!

Изменить:
Когда я прочитал эту статью , я сразу вспомнил эти вопросы;

40
ответ дан 8 December 2019 в 02:00
поделиться

Весь подход к контрольным вопросам весьма ошибочен.

Я всегда обнаруживал , что люди ставят ответы на вопросы безопасности слабее, чем пароли, которые они используют .
Вопросы безопасности - это всего лишь еще одно звено в цепи безопасности, более слабое звено!

ИМО, лучше было бы разрешить пользователю запрашивать новый пароль, отправленный на его зарегистрированный идентификатор электронной почты . У этого есть два преимущества.

  1. попытка грубой силы должна сначала найти и сломать службу электронной почты (и вы никогда им не поможете - держите регистрационный идентификатор электронной почты в надежном месте)
    • пользователь вашей службы всегда будет получать указание, когда кто-то пытается подобрать пароль (они получают письмо о том, что они пытались восстановить свой пароль).

Если у вас ДОЛЖНЫ быть секретные вопросы, позвольте им инициировать повторно сгенерированный (никогда не отправлять пароль пользователя, повторно создавать временный, предпочтительно одноразовый принудительный) отправка пароля на адрес электронной почты, с которым они зарегистрировались - и не показывать это вообще.

Другой трюк - сделать секретный вопрос САМ их зарегистрированный идентификатор электронной почты .
Если они все исправят, вы отправите повторно сгенерированный временный пароль на этот идентификатор электронной почты.

12
ответ дан 8 December 2019 в 02:00
поделиться

Это невозможно сделать с помощью регулярного выражения. На самом деле, я вообще не могу придумать разумного способа сделать это - где бы вы провели грань между подозрительным и не вызывающим подозрений? Я, на этот раз, часто отвечаю на секретные вопросы запутанными ответами. В конце концов, девичью фамилию моей матери не самое сложное узнать.

6
ответ дан 8 December 2019 в 02:00
поделиться

Если вы можете найти список букв - Вероятность пар в английском языке, вы можете построить приблизительную вероятность того, что слово не является «настоящим» английским словом, используя наименее возможные пары и пары, которых нет в списке. К сожалению, если у вас есть имена или другие «не-слова», вы не можете заставить их быть английскими словами.

4
ответ дан 8 December 2019 в 02:00
поделиться

Возможно, вы могли бы проверить обилие согласных. Так, например, в вашем примере lakdsjflkaj есть 2 гласных (а) и 9 согласных. Обычно вероятность попадания в гласную при случайном нажатии клавиш намного ниже, чем при попадании в согласную.

4
ответ дан 8 December 2019 в 02:00
поделиться

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

Быстрый гугл дал мне это , вы можете сравнить каждое с именем в этом списке.

Очевидно, работает только для указанного вами секретного вопроса.

Вы также видели это:

Анатомия твиттер-атаки

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

2
ответ дан 8 December 2019 в 02:00
поделиться

Если ваш вопрос когда-либо связан с настоящим человеческим именем, это невозможно. Рассмотрим азиатские имена, набранные латинскими буквами; они вполне могут сработать с любым фильтром, который вы придумаете, но по-прежнему являются вполне законными.

2
ответ дан 8 December 2019 в 02:00
поделиться

Почему бы вместо регулярных выражений просто не сравнить со списком известных хороших значений? Например, сравните девичью фамилию матери с данными переписи или имя домашнего животного с любым из списков имен домашних животных, которые вы можете найти в Интернете. Для более простой версии просто выполните поиск в Google по введенному тексту. Законные имена должны давать много результатов, в то время как затирание клавиатуры должно давать очень мало результатов, если они вообще есть.

Как и в случае с любым другим методом, вам все равно придется обрабатывать ложные срабатывания.

0
ответ дан 8 December 2019 в 02:00
поделиться

Вы можете искать шаблоны, которые не имеют фонетического смысла. Например:

'q' без буквы 'u'.

asdf

qwer

zxcv

asdlasd

В принципе, попробуйте затирать на своей клавиатуре, посмотрите, что вы получите, и вставьте это в свой фильтр. Также вставьте различные грамматические правила. Однако, поскольку вы имеете дело с именами, вы всегда получите «того парня» со странным именем, который вызовет ложное срабатывание.

0
ответ дан 8 December 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: