我想在Zotonic中强制执行密码策略。我的第一印象是将其作为身份编辑器中new_password
字段的验证器。
以下是一个示例政策:
这是一个可能的实现(未经测试):
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中强制执行密码复杂性规则?
答案 0 :(得分:1)
您可以做的是将其作为表单验证来实现。与其他验证一致。
我想知道是否有可用的javascript来显示密码强度。 (就像交通信号灯,绿色确定,红色确实不行。)
可以使用{% validate %}
scomp。
可以通过制作单个正则表达式并使用format
验证程序http://zotonic.com/documentation/634/format
对于您提议的功能或“红绿灯”功能,最好制作自定义验证器。或者我们添加了对LiveValidation的自定义验证器的支持,然后您可以通过Javascript函数进行检查。
答案 1 :(得分: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 在How do you enforce password complexity rules in Zotonic?中描述:
{% validate id="new_password" type={format pattern="^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"} %}