站点安全配置:跨站点脚本攻击防范与解决方案

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

站点安全配置:跨站点脚本攻击防范与解决方案

【漏洞背景说明】

跨站点脚本攻击(Cross Site Scripting简称XSS)是一种常见的攻击行为,它是指恶意攻击者在应用系统的Web页面里插入恶意代码,当用户浏览该页面时,嵌入其中Web里面的恶意代码会被执行,从而达到攻击的目的。


从原理上讲,跨站点脚本攻击,是利用系统对用户输入检查不严格的漏洞,将用户数据变成了可执行的代码。一个完整的XSS过程是这样的:

1,攻击者想办法在应用系统页面中嵌入了恶意脚本代码;

2,攻击者想办法让目标用户打开页面链接或浏览页面;

3,应用系统将含有恶意脚本的页面返回给用户浏览器;

4,浏览器解析运行恶意脚本。






【场景介绍】

  • 为了防范此类安全漏洞问题,和帮助客户现场快速配置和通过第三方安全扫描工具认证。金蝶云星空在V7.X版本后,根据用户反馈的安全漏洞问题,陆续增加站点安全配置参数,不断加强星空产品访问安全。

  • 安全参数生效产品版本:7.6.0.202105 / PT-146876及以上版本(构建号:7.6.2171.1)

本解决方案实现了对 http[s]://xxx.xxx.xxx.xxx/k3cloud/目录下URL+headers访问的WAF拦截 





【解决方案】

请升级金蝶云星空环境到安全参数生效产品版本,并对安全参数进行配置,重启IIS后生效。


一. 主要步骤

  1. 配置URL请求头拦截规则,修改或添加相应需要的规则项;

  2. 增加并启用输入数据拦截规则参数;

  3. 添加输入数据文本黑名单拦截规则;

  4. 启用压缩参数,避免误拦截;

  5. 如果二开自定义请求参数存在类注入脚本格式数据或xml数据,请在传入前用base64进行编码,使用时再进行解码,避免木马注入。


二. 详细操作

1. 配置URL请求头拦截规则

配置节点:website/app_data/Common.config中的<packageConfig>节点下找到子节点<urlBlockRules>

默认配置项:

    <urlBlockRules>
      <!-- 这里的所有value必须符合正向搜索正则表达式,表达式内容必须经过base64编码-->
      <!--\<(\s){0,}(\/){0,}(\s){0,}script\>-->
      <add key="Script_In_Bracket" value="XDwoXHMpezAsfShcLyl7MCx9KFxzKXswLH1zY3JpcHQoXHMpezAsfShcLyl7MCx9KFxzKXswLH1cPg==" />
      <!--[\<\>] 
最严格规则,如有特例可以屏蔽这个规则
-->
      <add key="Point_Bracket" value="W1w8XD5d" />
      <!--(\<[^\<^\>]{0,}\>)-->
      <add key="Point_Bracket_Pair" value="KFw8W15cPF5cPl17MCx9XD4p"/>
      <!--\W{0,}document\.cookie[\.\;]{1,}-->
      <add key="document_cookie" value="XFd7MCx9ZG9jdW1lbnRcLmNvb2tpZVtcLlw7XXswLH0=" />
      <!--\\u\S{4,4}\\u-->
      <add key="unicode" value="XFx1XFN7NCw0fVxcdQ==" />
      <!--\<\s{0,}iframe-->
      <add key="iframe" value="XDxcc3swLH1pZnJhbWU=" />
    
    </urlBlockRules>


高级配置项(根据实际需要选用):

    <urlBlockRules>
      <!-- 以下为选用规则,不是星空默认出厂配置 -->
      <!--(/\.\.){1,}/ 拦截改变相对路径资源的请求-->
      <add key="Double_Point_InRBar" value="KCUyZlwuXC4pezEsfSUyZg==" />
      <!--(\/\.\.){2,}\/ 拦截改变相对路径资源的请求-->
      <add key="Double_Point_InRBarCT" value="KFwvXC5cLil7Mix9XC8=" />
      <!--\?{1,}[^\/,^\(]{1,}\s{0,}\([^\)]{0,}\)[\s\S]{0,}&user-agent= 拦截url函数注入-->
      <add key="URL_INJ_Func" value="XD97MSx9W15cLyxeXChdezEsfVxzezAsfVwoW15cKV17MCx9XClbXHNcU117MCx9JnVzZXItYWdlbnQ9" />
      <!--解决父级路径访问注入 accessParentPath: ../-->
      <add key="accessParentPath" value="XC5cLlwv" />
    </urlBlockRules>

2. 增加并启用输入数据拦截规则参数  

配置节点:website/app_data/Common.config中的<appSettings>节点下

<add key="IsInputBlock" value="True"/>


3. 添加输入数据文本黑名单拦截规则;

配置节点:website/app_data/Common.config中的<packageConfig>节点下

  <!-- 实现对明文ap参数的waf 拦截 -->
      <textBlockRules>
      <!-- 启用拦截规则参数由Appsettings.IsInputBlock控制,输入数据拦截,拦截点:1、所有服务端输入参数;2、HTML客户端文本录入;-->
      <!-- 这里的所有value必须符合正向搜索正则表达式,表达式内容必须经过base64编码;-->
      <!--\<(\s){0,}(\/){0,}(\s){0,}script\>-->
      <add key="Script_In_Bracket" value="XDwoXHMpezAsfShcLyl7MCx9KFxzKXswLH1zY3JpcHRcPg=="/>
      <!--\W{0,}document\.cookie[\.\;]{1,}-->
      <add key="document_cookie" value="XFd7MCx9ZG9jdW1lbnRcLmNvb2tpZVtcLlw7XXsxLH0="/>
      <!--\<\s{0,}iframe-->
      <add key="iframe" value="XDxcc3swLH1pZnJhbWU="/>
      <!--\<[^(\?xml)][^\>^\<]+\=[^\>^\<]+[^\?]\>-->
      <add key="caller_in_Point_Bracket" value="XDxbXihcP3htbCldW15cPl5cPF0rXD1bXlw+Xlw8XStbXlw/XVw+"/>
       <add key="caller_in_less_Point_Bracket" value="XDxbXihcP3htbCldW15cPl5cPF0rXD1bXlw+Xlw8XStbXlw/XStbXChcKVw+XCdcIl1bXlw/XQ=="/>
    </textBlockRules>


4. 启用压缩参数,避免误拦截;

 <!--启用HTTP请求压缩-->
 <add key="SL_Http_Compressed" value="true"/>





【注意事项】

  • 如果二开自定义请求参数存在类注入脚本格式数据或xml数据,请在传入前用base64进行编码,使用时再进行解码,避免木马注入。




【延伸阅读】





站点安全配置:跨站点脚本攻击防范与解决方案

【漏洞背景说明】跨站点脚本攻击(Cross Site Scripting简称XSS)是一种常见的攻击行为,它是指恶意攻击者在应用系统的Web页面里插入恶意...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息