В данный момент мы внедряем Identity Server WSO2, и я проверяю его настройки Моей целью было включить пробелы в именах пользователей. Они не разрешены по умолчанию и защищены некоторыми регулярными выражениями. Я не понимаю, почему есть различия в регулярных выражениях для Frontend и Backend.
Вот фрагмент из repository/conf/user-mgt.xml
:
<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 для проверки имени пользователя? Пока ничего не нашел ...
Любая помощь или информация приветствуется.