K/3 Cloud 配置站点安全配置与参数(2017-05-02)
金蝶云社区-lindsey
lindsey
14人赞赏了该文章 1,129次浏览 未经作者许可,禁止转载编辑于2018年12月16日 12:13:32

(6.X:2017-4-20之后的最新功能累积更新才支持本功能。PT112639, 下载地址; 7.X:支持;)

1、拦截XSS攻击配置
1.1、在Common.config中的<appSettings>节点下增加并启用输入数据拦截规则参数 <add key="IsInputBlock" value="True"/>参数;
1.2、在Common.config中的<packageConfig>节点下添加输入数据文本黑名单拦截规则配置如下:

  1. <textBlockRules>

  2.       <!-- 启用拦截规则参数由Appsettings.IsInputBlock控制,输入数据拦截,拦截点:1、所有服务端输入参数;2、HTML客户端文本录入;-->

  3.       <!-- 这里的所有value必须符合正向搜索正则表达式,表达式内容必须经过base64编码;-->

  4.       <!--\<(\s){0,}(\/){0,}(\s){0,}script\>-->

  5.       <add key="Script_In_Bracket" value="XDwoXHMpezAsfShcLyl7MCx9KFxzKXswLH1zY3JpcHRcPg=="/>

  6.       <!--\W{0,}document\.cookie[\.\;]{1,}-->

  7.       <add key="document_cookie" value="XFd7MCx9ZG9jdW1lbnRcLmNvb2tpZVtcLlw7XXsxLH0="/>

  8.       <!--\<\s{0,}iframe-->

  9.       <add key="iframe" value="XDxcc3swLH1pZnJhbWU="/>

  10.       <!--\<[^(\?xml)][^\>^\<]+\=[^\>^\<]+[^\?]\>-->

  11.       <add key="caller_in_Point_Bracket" value="XDxbXihcP3htbCldW15cPl5cPF0rXD1bXlw+Xlw8XStbXlw/XVw+"/>

  12.     </textBlockRules>

复制代码

1.3、同时在<appSettings>启用压缩参数,避免误拦截, 如下:

  1. <!--启用HTTP请求压缩-->

  2.     <add key="SL_Http_Compressed" value="true"/>

复制代码



2、保护Cookie的安全设置
2.1、在Web.Config的<system.web>节点下添加配置选项<httpCookies httpOnlyCookies="true" />,httpCookies选项解决cookie的httponly和secure参数的控制,secure只能在https协议下配置;
2.2、也可以在Common.config文件中的<appSettings>节点下配置安全cookie参数如下:
                 <add key="IsSecureCookie" value ="True"/>



3、防止网站被别的站点iframe嵌套
3.1、在Web.Config中的<system.webserver>节点下配置 x-frame-options选项;

  1. <!-- 增加HTTP协议参数 -->

  2.     <httpProtocol>

  3.       <customHeaders>

  4.         <!-- 避免了点击劫持 (clickjacking) 的攻击。Value:DENY,SAMEORIGIN,ALLOW-FROM -->

  5.         <!--<add name="X-Frame-Options" value="SAMEORIGIN" /> -->

  6.       </customHeaders>

  7.     </httpProtocol>

复制代码

例外:但是x-Frame-options的支持受浏览器的限制,在部分浏览器是支持不了的。可以参考微软文档。https://blogs.msdn.microsoft.com/ieinternals/2010/03/30/combating-clickjacking-with-x-frame-options/

4、隐藏堆栈信息
4.1、通过在Common.config里面的<appSettings>节点下添加StackTraceLevel参数为,并设置为0,实现在界面上的错误提示仅提示错误编码;
   <add key="StackTraceLevel" value ="0"/>   
4.2、参数说明:
4.2.1、业务级别下StackTrackLevel=0,仅展示错误信息和编码,服务端的Log日志中可以按错误编码找到完整堆栈信息;
4.2.2、程序级别下StackTrackLevel=100,展示所有错误信息和编码,以及堆栈信息;

5、Sql注入拦截
5.1、通过在Common.config里面的<appSettings>节点下添加以下节点;

  1. <!--Sql关键字-->

  2.     <add key="SqlKeys" value="select|insert|delete|from|drop|update|count|chr|char|mid|truncate|exec|net user|or|and|xp_cmdshell"/>

  3.     <!--脚本关键字-->

  4.     <add key="ScriptKeys" value="& amp;|& quot;|& gt;|& lt;"/>(这里要做html转码,论坛原因需要去掉&后的空格使用)

复制代码

5.2、用Administrator登录系统,在【参数设置】功能下,选择【基础管理-BOS平台】分组,勾选【启用脚本关键字合法性验证】和【启用Sql关键字合法性验证】选项;

6、防止上传目录文件泄露
6.1、在IIS的站点目录下,配置【处理程序映射】功能中添加【添加托管处理程序】;
6.2、录入请求路径:FileUploadServices/UploadFiles/*.* ;类型录入 Kingdee.BOS.Web.FileServer.Download, Kingdee.BOS.Web;
6.3、如下图:
添加托管处理程序

2017-07-28 上传

下载附件 (98.13 KB)
添加托管处理程序





7、上传文件白名单设置
7.1、通过在Common.config里面的<appSettings>节点下添加以下节点;

  1.     <add key="UploadWhiteList" value="txt,pdf,doc,docx,xls,xlsx,ppt,pptx,rft,jpg,png,bmp,gif,jpeg,rar,zip,dat,key,msg,cad,btw,avi,rmvb,wps,et,dps,vsd" />

  2.     <add key="DocSuffix" value="doc|docx|xls|xlsx|pdf|ppt|pptx|txt|wps|rtf|et|dps|vsd" />

  3.     <add key="ImageSuffix" value="jpeg|jpg|png|gif|bmp|cur" />

  4.     <add key="VideoSuffix" value="wmv|avi|swf|wav|mpeg|aif|mdi|mpg|rmvb|flv|mkv" />

  5.     <add key="PackageSuffix" value="kdpkg" />

复制代码

7.2、即可实现上传文件白名单功能;

8、反向代理实现HTTPS->http映射
8.1、通过反向代理实现公网443->私网80的映射;
8.2、在反向代理服务器上设置Request的header参数X-Forwarded-Proto=https即可;
8.3、安装6.x最新补丁,或者7.x的最新补丁;
8.4、或者参考 【https://vip.kingdee.com/article/24800】的【问题7】;

9、IIS版本号在请求响应头中泄漏
解决方案:按照微软官方文档配置即可去掉版本号;
参考:https://blogs.msdn.microsoft.com/varunm/2013/04/23/remove-unwanted-http-response-headers/
其他参考:
http://www.cnblogs.com/dudu/p/iis-remove-response-readers.html
https://bbs.aliyun.com/read/535787.html?page=e


10、IIS中关闭Options谓词方法
解决方案:在IIS中,选择根节点或者具体网站,然后在右侧的功能中选择【请求筛选】-->【HTTP谓词】-->右键添加【拒绝谓词】-->输入【OPTIONS】,然后确定即可

11、关于Silverlight的跨域访问配置问题 clientaccesspolicy.xml  
参考: https://vip.kingdee.com/article/41358

12、如果严格某种请求的谓语动词
如果是针对所有请求的谓语动词,可以参考【10、IIS中关闭Options谓词方法】
只允许Web服务器响应GET和POST请求(金蝶云要求HEAD,GET,POST),其他则拒绝的方法,需要在iis管理器中的处理程序映射功能中设置。如下图:

GetPOST设置

2018-10-10 上传

下载附件 (354.58 KB)
GetPOST设置





图标赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!