Почему многие сайты запрещают использование не-буквенно-цифровых символов в паролях? - PullRequest
9 голосов
/ 05 августа 2009

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

Аналогичный вопрос, о сайтах, ограничивающих длину здесь .

Ответы [ 11 ]

17 голосов
/ 05 августа 2009
  1. Laziness, 2. Использование устаревших систем, которые не поддерживают эти символы для аутентификации
13 голосов
/ 05 августа 2009
  1. Они дебилы
  2. Они почти наверняка хранят простой текстовый пароль (см. 1)
9 голосов
/ 05 августа 2009

Их нет в США. В Европе у вас каждые несколько миль разная клавиатура. Удачи в поиске вашего специального персонажа на итальянской клавиатуре. Или греческий. Или турецкий.

Единственными клавишами, которые, вероятно, существуют, являются буквенно-цифровые клавиши, и большинство людей смогут найти обходной путь, даже если пара клавиш поменяется местами (например, Y и Z).

Наконец, люди, как известно, плохо запоминают пароли. Принудительное использование ими «honey» вместо «jh (/ & DFA93475» значительно снижает количество обращений в службу поддержки («Я не помню свой пароль ...»)

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

6 голосов
/ 05 августа 2009

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

5 голосов
/ 05 августа 2009

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

4 голосов
/ 08 августа 2009

Поддержка устаревших систем

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

Плохая проверка ввода и отсутствие хеширования / шифрования пароля

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

Необходимое упрощение

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

2 голосов
/ 05 августа 2009

Причина, по которой они требуют буквенно-цифровых символов, обычно является попыткой предотвратить внедрение SQL при вводе паролей. Например:

На некоторых сайтах вы можете ввести: U: admin P: 'или' t '=' t

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

2 голосов
/ 05 августа 2009

Возможно, что тот же пароль необходимо будет ввести с клавиатуры телефона (1 = 1, A, B или C).

Понимая, что это ужасно небезопасно, одним из способов повышения безопасности будет блокировка учетной записи после попыток ввода X неверного пароля. Зачастую банковские сайты являются лишь интерфейсом для ужасно старого приложения для мэйнфреймов и не могут изменять политики паролей.

2 голосов
/ 05 августа 2009

Одна из возможных причин: пользовательский интерфейс сайта разработан маркетинговым типом или нетехническим менеджером продукта. Тот, кто не понимает комбинаторику и думает, что на самом деле предъявляет разработчикам точные требования, диктуя, что поле пароля должно содержать ровно 8 буквенно-цифровых символов.

2 голосов
/ 05 августа 2009

Плохое программирование, и тот факт, что они хранят его в виде открытого текста, я уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...