0

Zotonicでパスワードポリシーを適用したいと思います。new_password私の第一印象は、アイデンティティエディタのフィールドでバリデーターとしてこれを行うことです。

ポリシーの例を次に示します。

  • 長さが8文字以上である
  • 大文字を少なくとも1つ持つ
  • 小文字を少なくとも1つ持つ
  • 少なくとも1つの番号を持っている
  • 英数字以外の文字を少なくとも1つ持つ
  • アカウント名に基づかない

可能な実装は次のとおりです(テストされていません)。

string:length(Password) >= 8 andalso
re:run(Password, "[A-Z]") =/= nomatch andalso
re:run(Password, "[a-z]") =/= nomatch andalso
re:run(Password, "[0-9]") =/= nomatch andalso
re:run(Password, "[^A-Za-z0-9]") =/= nomatch andalso
re:run(Password, AccountName) =:= nomatch

Zotonicでパスワードの複雑さのルールをどのように適用しますか?

4

2 に答える 2

1

あなたができることは、フォーム検証としてそれを実装することです。他の検証の線に沿って。

パスワードの強度を示すJavaScriptが利用できるかどうか疑問に思いました。(信号機のように、緑は大丈夫、赤は本当に大丈夫ではありません。)

検証は、{% validate %}scompを使用して添付できます。

簡単なパスワードチェックは、単一の正規表現を作成し、formatバリデーター http://zotonic.com/documentation/634/formatを使用してパスワードフィールドに添付することで実行できます。

提案された機能、または「信号機」機能については、カスタムバリデーターを作成する方がよい場合があります。または、LiveValidationのカスタムバリデーターのサポートを追加します。このバリデーターに、チェック用のJavascript関数を渡します。

于 2010-10-05T17:35:57.410 に答える
0

私の同僚は私に次のように指摘しました:

^.*(?=.{10,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

完全な説明は、http://davidhayden.com/blog/dave/archive/2004/09/25/501.aspxで元の作成者から入手できます。

Zotonicで使用すると(おそらくreモジュールの奇妙さのために)わずかなバグがあるため、をに変更し\d[0-9]必要な長さを8に減らしました。

^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

プレゼンスバリデーター_action_dialog_set_username_password.tplを置き換えることで適用できます。

{% validate id="new_password" type={presence} %}

Marc Wが「Zotonicでパスワードの複雑さのルールをどのように適用しますか?」で説明しているように、フォーマットバリデーターを使用します。:

{% validate id="new_password" type={format pattern="^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"} %}
于 2010-10-06T14:37:13.320 に答える