Django маскировка пароля приложения-приложения - есть ли способ отключить? - PullRequest
2 голосов
/ 10 мая 2011

Я постоянно вижу статьи, в которых предлагается Маскировка пароля отключена , чтобы пользователи могли видеть, что они печатают.При использовании приложения аутентификации Django (V1.2) оно автоматически маскирует поле ввода пароля.Есть ли простой , возможно встроенный, способ изменить это поведение, сделать пароли видимыми?

Я подозреваю, что нет ничего простого :) И для этого потребуется кодирование - разработка собственных формили подклассы существующих или что-то.Если да, то как лучше всего это сделать?

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

Вы можете , а не использовать виджет для визуализации ввода для поля пароля. То есть заменить:

<td>{{ form.password }}</td>

с

<td><input type="text" name="password" id="id_password" /></td>

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

1 голос
/ 10 мая 2011

В django / contrib / auth / formspy

Найдите строки

password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput

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

Хотя я бы сделал это чище и либо сделал бы свою собственную форму, либо, по крайней мере, унаследовал ее, и написал бы свой ExtendedUserCreationForm, переопределяющий определение поля по умолчанию.

0 голосов
/ 11 мая 2011

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

Прежде всего, не django маскирует пароль, это поведение браузеров по умолчанию, когда вы используете ввод типа password .

Афаик, пути нет.Я попытался немного исследовать, есть ли в браузерах какие-либо дополнительные меры безопасности, которые бы советовали НЕ менять тип, но еще не нашел.

Но из того, что я прочитал, кажется, что этоРекомендуется использовать поле пароля - все равно придется посмотреть на это.

Тем не менее, есть некоторые методы, которые обходят это аккуратно.хотя большинство из них зависят от js.

например:
текстовое поле HTML, которое ведет себя как поле пароля

http://blog.decaf.de/2009/07/iphone-like-password-fields-using-jquery/

как "как"«Реализовать это с помощью django уже более или менее ответили;)

edit1: нашел несколько ссылок, рекомендующих использовать тип пароля (и, следовательно, пройти через трюки с использованием двух полей, как в ссылках, которые яотправил).

Есть некоторые дополнительные проверки полей пароля, которые не применяются к обычному текстовому вводу, чтобы предотвратить уязвимости XSS: кажется, что поля пароля в некоторых браузерах придерживаются той же политики происхождения ,Но есть несколько других проблем, таких как менеджеры паролей (любой, кто использует браузер, может узнать пароль, так как поле текста типа пароля будет видно) и т. Д. И т. Д.

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

Поле ввода пароля, похожее на iphone, является хорошей серединой, но я думаю, все зависит от балансамежду безопасностью и удобством использования.Как часто вы заходите на сайт, когда рядом с вами сидит друг / коллега?

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