我有更改密码表单,在密码字段中我添加了<script>alert()
,我收到此错误:
A potentially dangerous request.form value was detected from the client
为此,我想添加一个正则表达式验证,我尝试过以下验证,但它不起作用:
[RegularExpression(@"/[^a-zA-Z0-9'_-.&#@$]*$", ErrorMessage = "Invalid Password")]
我只想让用户(a-z
,A-Z
,0-9
和'_-.&#@$
),别的。
如果用户在密码字段中添加<script>alert()</script>
类型的值,则应显示验证。我不想让用户存储这种类型的密码。
答案 0 :(得分:3)
模式有几个问题:
[...]+
而不是[...]*
(如果空密码正常,则{{1}然而,这是正确的)*
而不是^[...]+$
[...]+$
,而不是[...]
[^...]
在括号内-
表示 range ,例如[...]
;逃避它:A-Z
总结
[...\-...]
最有可能的是,您希望密码至少 [RegularExpression(@"^[a-zA-Z0-9'_\-.&#@$]+$", ErrorMessage = "Invalid Password")]
个字符;在这种情况下,将n
更改为+
,例如典型密码最小长度为{n,}
:
n == 8
答案 1 :(得分:0)
您可以使用此模式。连字符应该在结尾或开始时。
[^a-zA-Z0-9'_.&#@$-]
OR
[^-a-zA-Z0-9'_.&#@$]
对于使用\-
使用的连字符也没问题