iPortal如何灵活设置用户名及密码的安全规则

作者:yx

目录

前言

一、配置文件介绍

1、<passwordRules>节点

注意事项:

2、<usernameRules>节点

二、应用实例

1、配置文件设置

2、验证扩展结果

三、结果展示



前言

SuperMap iPortal提供了扩展账户信息合规度校验规则的能力,您可以灵活定制满足自身项目需求的用户名、密码合规度校验规则,用于校验您创建的账户信息是否合规。您需要通过修改配置文件的方式来扩展定制用户名、密码校验规则,填写内容包括用于合规度校验的正则表达式、字典或字符串,以及校验失败时提示的报错信息等。

一、配置文件介绍

在产品包根目录 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF/config下,accountInfoComplianceRules.xml 文件中内置了 SuperMap iPortal当前已经支持的账户信息合规度校验规则。其中,密码规则详见:用户管理

配置文件根节点为<rules>元素,包括以下两个子节点:

1、<passwordRules>节点

为用于配置密码合规度校验规则的集合,可以包含多个<rule>标签。每个<rule>标签对应一种密码合规度校验规则,包含合规度规则的校验方式(<type>)、规则名(<name>)、规则表达式(<expression>)、中文报错信息(<zhErrMsg>)以及英文报错信息(<enErrMsg>)等配置项。

<passwordRules>节点示例如下所示:

cpp 复制代码
<passwordRules>
        <rule>
            <type>regularExpression</type>
            <name>PwdLength</name>
            <expression><![CDATA[\S{8,}]]></expression>
            <zhErrMsg>密码长度至少为8字符</zhErrMsg>
            <enErrMsg>Password must contain at least 8 characters</enErrMsg>
        </rule>
        <rule>
            <type>dictionary</type>
            <name>NotContainsContinuationCharacter</name>
            <expression>
                <condition>notcontainscontinuouschars,3</condition>
                <dictionary>abcdefghijklmnopqrstuvwxyz</dictionary>
                <dictionary>ABCDEFGHIJKLMNOPQRSTUVWXYZ</dictionary>
                <dictionary>0123456789</dictionary>
            </expression>
            <zhErrMsg>密码不能包含三个或三个以上连续字符</zhErrMsg>
            <enErrMsg>Password can't contain three or more continuous characters and numbers</enErrMsg>
        </rule>
        <rule>
            <type>StringMatch</type>
            <name>notContainsUsernameAndReverse</name>
            <expression>
                <condition>notcontainsextraparamsandreverse</condition>
                <paramContent>${username}</paramContent>
            </expression>
            <zhErrMsg>密码不能包含用户名及其倒写</zhErrMsg>
            <enErrMsg>Pasword can't contain the user name and its reverse</enErrMsg>
        </rule>
</passwordRules>

其中,

  • <type>:用于设置校验合规度规则的方式,包括正则表达式(regularExpression)、字典(dictionary)和字符串匹配(StringMatch)等三种类型。
  • <name>:用于设置合规度规则的规则名。
  • <expression>:用于设置合规度规则的表达式。当<type>为正则表达式(regularExpression)时设置描述合规度规则的正则表达式,并且没有子节点;为字典(dictionary)和字符串匹配(StringMatch)时,包括如下子节点:
  • <condition>:用于设置合规度规则的匹配条件。当<type>为字典(dictionary)时,需根据规则设置与字典的关联条件及与字典关联的字符个数,用","连接(例如:notcontainscontinuouschars,3);当<type>为字符串匹配(StringMatch)时,需根据规则设置与字符串的关联条件,如:notcontainsextraparamsandreverse。
  • <dictionary>:用于设置合规度规则的关联字典。当<type>为字典(dictionary)时,该参数可选。在同一个<expression>节点中,可设置多个<dictionary>。
  • <paramContent>:用于设置合规度规则的关联字符串。当<type>为字符串匹配(StringMatch)时,该参数可选。在同一个<expression>节点中,仅可设置一个<paramContent>,且<paramContent>中只能包含一个字符串,例如填写为 test。
  • <zhErrMsg>:用于设置校验合规度规则时失败时的中文提示信息。
  • <enErrMsg>:用于设置校验合规度规则时失败时的英文提示信息。

注意事项:

  1. 请注意,当前仅支持在<type>为字典(dictionary)时设置不包含连续字符(notcontainscontinuouschars)和在<type>为字符串匹配(StringMatch)时设置不包含字符及其倒写(notcontainsextraparamsandreverse)两种关联条件。
  2. 请注意,在配置文件内置的规则中,${username} 指用户设置的用户名字符,该配置仅能作为整体使用或替换。

2、<usernameRules>节点

为用于配置用户名合规度校验规则的集合,可以包含多个<rule>标签。每个<rule>标签对应一种用户名合规度校验规则,包含合规度规则的校验方式(<type>)、规则名(<name>)、规则表达式(<expression>)、中文报错信息(<zhErrMsg>)以及英文报错信息(<enErrMsg>)等配置项。

<usernameRules>节点配置方法同<passwordRules>节点,示例如下所示:

cpp 复制代码
<usernameRules>
        <rule>
            <type>regularExpression</type>
            <name>UsernameLength</name>
            <expression><![CDATA[^[a-zA-Z][a-zA-Z0-9_-]{3,17}$]]></expression>
            <zhErrMsg>用户名必须是数字、字母、下划线或中划线组成,且以字母开头</zhErrMsg>
            <enErrMsg>User name must be composed of numbers, letters, underscores or dash, and begin with a letter.</enErrMsg>
        </rule>
</usernameRules>

二、应用实例

1、配置文件设置

在产品包根目录 %SuperMap iPortal_HOME%webapps/iportal/WEB-INF/config 下,accountInfoComplianceRules.xml 文件的子节点<passwordRules>中添加如下内容:

cpp 复制代码
<passwordRules>
        ...
    <rule>
        <type>dictionary</type>
        <name>NotContainsKeyboardVerticalContinuationCharacter</name>
        <expression>
            <condition>notcontainscontinuouschars,2</condition>
            <dictionary>1qaz</dictionary>
            <dictionary>2wsxl</dictionary>
             ...
            <dictionary>9ol.</dictionary>
        </expression>
        <zhErrMsg>根据键盘阵列,密码不能包含两个或两个以上竖排连续的字符</zhErrMsg>
        <enErrMsg>Password can't contain two or more continuous vertical characters on the keyboard</enErrMsg>
    </rule>
</passwordRules>

由于该规则涉及多个字符,且无法使用正则表达式进行表达,因此使用字典的方式进行校验。其中<dictionary>参数仅列出三组,您可以根据实际情况进行补充设置。

2、验证扩展结果

保存配置文件并重启 SuperMap iPortal,在初始化向导-创建管理员账户、用户管理-添加用户、账户设置-修改密码和强制修改密码等功能中设置密码,即可对输入的密码进行该项合规度规则校验。

注:若对管理员账户密码进行重置,需在重启 SuperMap iPortal前,停止 SuperMap iPortal服务,并执行【SuperMap iPortal_HOME】\bin目录下的 passwordreset.bat/passwordreset.sh 文件。


三、结果展示

相关推荐
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透6 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全