其他
6.1文件目录测试
目录列表能够造成信息泄漏,而且对于攻击者而言是非常容易进行的。所以在测试过程中,要注意目录列表漏洞。
测试方法:
通过浏览器访问web 服务器上的所有目录,检查是否返回目录结构,如果显示的是目录结构,则可能存在安全问题;
或使用DirBuster软件进行测试; 修改建议:
1.针对每个Directory 域都使用Allow 、Deny 等指令设置,严格设定WEB服务器的目录访问权限;
2.删除Options 指令下的Indexes 设置项; 6.2文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。
修改建议:
严格限制和校验上传的文件类型、大小等,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。
6.3 http请求方法测试
有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。
测试方法:
使用SoapUI等工具,发送除get、post以外的方法请求,如接收应答为200ok,代表启用了不必要的方法。 修改建议: 在tomcat web.xml中增加如下内容:
<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>
6.4 服务器安全策略
1.服务器用户权限 运行Web服务器的操作系统账号权限越高,那么Web遭到攻击产生的危害就越大。部署到生产环境运行时是不能用root等最高权限的,一切都给予以最小权限。
2.关闭无关端口
网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,例如 Web、FTP、SSH 等,其他的都应关闭。
如:关闭 icmp 端口,并设置规则,丢弃 icmp 包。这样他人无法 Ping到服务器,服务器安全得到提升。
修改方法:丢弃 icmp 包可在 iptables 中, 加入一条语句:-A INPUT -p icmp -j DROP 3.更改默认端口
如:默认的 SSH 端口是 22。建议改成 10000 以上。这样别人扫描到端口的机率也大大下降。
举例修改方法: # 编辑 /etc/ssh/ssh_configvi /etc/ssh/ssh_config# 在 Host * 下 ,加入新的 Port 值。以 18439 为例(下同):Port 22 Port 18439
# 编辑 /etc/ssh/sshd_configvi /etc/ssh/sshd_config#加入新的 Port 值Port 22Port 18439# 保存后,重启 SSH 服务:service sshd restart
测试新端口连接正常后,删除 Port 22 的配置。同时从 iptables 中, 删除22端口,添加新配置的 18439,并重启 iptables。
4.限制IP登录 如能以固定 IP 方式连接服务器,那么,可以设置只允许某个特定的 IP 登录服务器。 设置如下:
# 编辑 /etc/hosts.allowvi /etc/hosts.allow# 例如只允许 123.45.67.89 登录sshd:123.45.67.89 5.使用证书登录 SSH 相对于使用密码登录来说,使用证书更为安全,具体方法可参见网络资料。
6.5 口令规则建议 规则1:口令长度的取值范围为:0‐ 个字符;口令的最短长度和最长长度可配置;口令的最短长度建议默认为6个字符。
规则2:口令中至少需要包括一个大写字母(A‐Z)、一个小写字母(a‐z)、一个数字字符(0‐9);口令是否包含特殊字符要求可以配置。 规则3:口令中允许同一字符连续出现的最大次数可配置,取值范围:0‐9,当取值为 0 时,表示无限制,建议默认为 3。
规则4:口令须设置有效期,最短有效期的取值范围:0‐9999 分钟,当取值为0时,表示不做限制,建议默认:5 分钟;最长有效期的取值范围:0‐999 天,当取值为 0 时,表示口令永久有效,建议默认:90 天。 规则5:在口令到期前,当用户登录时系统须进行提示,提前提示的天数可配置,取值范围:1‐99 天,建议默认:7 天。
规则6:口令到达最长有效期后,用户再次登录成功但在进入系统前,系统强制更改口令,直至更改成功。
规则7:口令历史记录数可配置,取值范围为:0‐;建议默认:3个。 —
规则8:管理员/操作员/最终用户修改自己的口令时,必须提供旧口令。
规则9:初始口令为系统提供的默认口令、或者是由管理员设定时,则在用户/操作员使用初始口令成功登录后,要强制用户/操作员更改初始口令,直至更改成功。
规则10:口令不能以明文的形式在界面上显示。
规则11:口令不能以明文的形式保存,须加密保存;口令与用户名关联加密,即加密前的数据不仅包括口令,还包括用户名。
规则12:只有当用户通过认证之后才可以修改口令。
规则13:修改口令的帐号只能从服务器端的会话信息中获取,而不能由客户端指定。
6.6 页面输入项校验建议
对输入参数进行处理,建议过滤出所有以下字符:
[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] '(单引号)
[8] "(引号)
[9] \'(反斜杠转义单引号)
[10] \"(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)
本文暂时没有评论,来添加一个吧(●'◡'●)