【发布时间】:2023-04-11 10:04:01
【问题描述】:
目前我们正在实施 WSO2 身份服务器,我正在检查配置。我的目标是在用户名中启用空格。这些默认情况下是不允许的,并受某些正则表达式保护。我不明白为什么前端和后端的正则表达式存在差异。
这是取自repository/conf/user-mgt.xml的sn-p:
<Property name="UsernameJavaRegEx">[a-zA-Z0-9._\-|//]{3,30}$</Property>
<Property name="UsernameJavaScriptRegEx">^[\S]{3,30}$</Property>
<Property name="PasswordJavaRegEx">^[\S]{5,30}$</Property>
<Property name="PasswordJavaScriptRegEx">^[\S]{5,30}$</Property>
<Property name="RolenameJavaRegEx">[a-zA-Z0-9._\-|//]{3,30}$</Property>
<Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
第一件事是我不明白为什么用户名/角色名的那些正则表达式对于前端/后端是不同的,而密码的正则表达式是相等的?他们不应该都对后端/前端使用相同的正则表达式吗?当前的示例和文档有点奇怪。例如前端接受包含“:”的用户名,而后端不接受?
第二件事是我不确定我是否只是通过允许空白空间作为这些正则表达式的一部分来分解事物(不好的做法?)。
[a-zA-Z0-9._\-|//]{3,30}$ ==> [a-zA-Z0-9 ._\-|//]{3,30}$
^[\S]{3,30}$ ==> ^[\S ]{3,30}$
对于用户名验证是否有某种 OWASP 最佳实践?到目前为止,我没有发现任何东西......
欢迎任何帮助或信息。
【问题讨论】:
-
请注意,空格被算作文字空格字符 - 这不是“破坏”。
-
这对我来说听起来不错。 OWASP 也不拒绝以任何方式使用空格,所以我将使用它。谢谢!我仍然希望有人对我的问题的第一部分做出解释。
标签: javascript java regex wso2 wso2is