教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

华为Web应用安全开发规范(2)

来源:网络收集 时间:2026-08-24
导读: 务器、数据库服务器和平台,定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护所有这些设置。这包括了对所有的软件保护及时地更新,包括所有应用程序的库文件。 7 失败的URL访问

务器、数据库服务器和平台,定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护所有这些设置。这包括了对所有的软件保护及时地更新,包括所有应用程序的库文件。

7 失败的URL访问权限限制 许多Web应用程序在显示受保护的链接和按钮之前会检测URL访问权限。但是,当这些页面被访问时,应用程序也需要执行类似的访问控制检测,否则攻击者将可以伪装这些URL去访问隐藏的网页。 8 未经验证的重定向和前转 Web应用程序经常将用户重定向和前转到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以将受害用户重定向到钓鱼网站或恶意网站,或者使用前转去访问未经授权的网页。

9 不安全的加密存储 许多Web应用程序并没有使用恰当的加密措施或Hash算法保护敏感数据,比如信用卡、社会安全号码(SSN)、认证凭据等。攻击者可能利用这种弱保护数据实行身份盗窃、信用卡欺骗或或其他犯罪。 10 传输层保护不足 应用程序时常没有身份认证、加密措施,甚至没有保护敏感网络数据的保密性和完整性。而当进行保护时,应用程序有时采用弱算法、使用过期或无效的证书,或不正确地使用这些技术。 3 Web设计安全规范 3.1 Web部署要求

规则3.1.1:如果 Web 应用对 Internet 开放,Web服务器应当置于DMZ区,在Web服务器与Internet之间,Web服务器与内网之间应当有防火墙隔离,并设置合理的策略。

规则3.1.2:如果 Web 应用对 Internet 开放,Web服务器应该部署在其专用的服务器上,应避免将数据库服务器或其他核心应用与Web服务器部署在同一台主机上。

说明:Web服务器比较容易被攻击,如果数据库或核心应用与Web服务器部署在同一台主机,一旦Web服务器被攻陷,那么数据库和核心应用也就被攻击者掌控了。

规则3.1.3:Web站点的根目录必须安装在非系统卷中。

说明:Web站点根目录安装在非系统卷,如单独创建一个目录/home/Web作为Web站点根目录,能够防止攻击者使用目录遍历攻击访问系统工具和可执行文件。

建议3.1.1:Web服务器与应用服务器需物理分离(即安装在不同的主机上),以提高应用的安全性。

建议3.1.2:如果Web应用系统存在不同的访问等级(如个人帐号使用、客户服务、管理),那么应该通过不同的Web服务器来处理来自不同访问等级的请求,而且Web应用应该鉴别请求是否来自正确的Web服务器。

说明:这样便于通过防火墙的访问控制策略和Web应用来控制不同访问等级的访问,比如通过防火墙策略控制,只允许内网访问管理Portal。

建议3.1.3:对于“客户服务”和“管理”类的访问,除了普通的认证,还应该增加额外的访问限制。

说明:额外的访问限制,可以限制请求来自企业内网,可以建立VPN,或采用双向认证的SSL;或采用更简单的办法,通过IP地址白名单对客户端的IP地址进行过滤判断,实施参考《附件3客户端IP鉴权实施指导》。 3.2 身份验证

3.2.1 口令

关于Web应用及容器涉及到的口令,请遵循《产品网络安全红线》的口令安全要求(详细内容请见:附件4 口令安全要求.xlsx)。 3.2.2 认证

规则3.2.2.1:对用户的最终认证处理过程必须放到应用服务器进行。 说明:不允许仅仅通过脚本或其他形式在客户端进行验证,必须在应用服务器进行最终认证处理(如果采用集中认证,那么对用户的最终认证就是放在集中认证服务器进行)。

规则3.2.2.2:网页上的登录/认证表单必须加入验证码。 说明:使用验证码的目的是为了阻止攻击者使用自动登录工具连续尝试登录,从而降低被暴力破解的可能。如果觉得验证码影响用户体验,那么可以在前3次登录尝试中不使用验证码,3次登录失败后必须使用验证码。验证码在设计上必须要考虑到一些安全因素,以免能被轻易地破解。具体实现细节请查看3.2.3验证码。如图:

图2 验证码 实施指导:

建议使用电信软件与核心网网络安全工程部提供的验证码CBB。

备注:对于嵌入式系统,如果实现验证码比较困难,可以通过多次认证失败锁定客户端IP的方式来防止暴力破解。

规则3.2.2.3:用户名、密码和验证码必须在同一个请求中提交给服务器,必须先判断验证码是否正确,只有当验证码检验通过后才进行用户名和密码的检验,否则直接提示验证码错误。 说明:如果验证码和用户名、密码分开提交,攻击者就可以绕过验证码校验(如:先手工提交正确的验证码,再通过程序暴力破解),验证码就形同虚设,攻击者依然可以暴力破解用户名及口令。

规则3.2.2.4:所有登录页面的认证处理模块必须统一。 说明:可以存在多个登录页面,但是不允许存在多个可用于处理登录认证请求的模块,防止不一致的认证方式。

规则3.2.2.5:所有针对其他第三方开放接口的认证处理模块必须统一。 规则3.2.2.6:认证处理模块必须对提交的参数进行合法性检查。 说明:具体输入校验部分请查看4.1输入校验。

规则3.2.2.7:认证失败后,不能提示给用户详细以及明确的错误原因,只能给出一般性的提示。 说明:可以提示:“用户名或者口令错误,登录失败”;不能提示:“用户名不存在”、“口令必须是 6 位”等等。

规则3.2.2.8:最终用户portal和管理portal分离。

说明:最终用户portal和管理portal分离,防止相互影响,防止来自用户面的攻击影响管理面。 实施指导:

将最终用户portal和管理portal分别部署在?煌?奈锢矸?务器;如果为了解决成本合设(部署在同一台物理服务器上),那么,必须做到端口分离(通过不同的端口提供Web服务),一般的Web容器(如tomcat)支持为不同的Web应用创建不同的端口。

规则3.2.2.9:禁止在系统中预留任何的后门帐号或特殊的访问机制。

规则3.2.2.10:对于重要的管理事务或重要的交易事务要进行重新认证,以防范会话劫持和跨站请求伪造给用户带来损失。

说明:重要的管理事务,比如重新启动业务模块;重要的交易事务,比如转账、余额转移、充值等。重新认证,比如让用户重新输入口令。

规则3.2.2.11:用户名和密码认证通过后,必须更换会话标识,以防止会话固定(session fixation)漏洞。 实施指导: 场景一:对于从HTTP转到HTTPS再转到HTTP(也就是仅在认证过程采用HTTPS,认证成功后又转到HTTP)的,在用户名和密码认证通过后增加以下行代码: request.getSession().invalidate(); HttpSession newSession=request.getSession(true); Cookie cookie = new Cookie(\ cookie.setMaxAge(-1); cookie.setSecure(false); cookie.setPath(request.getContextPath()); response.addCookie(cookie);

场景二:对于全程采用HTTPS协议,或者全程采用HTTP协议的,在用户名和密码认证通过后增加以下行代码: request.getSession().invalidate(); request.getSession(true);

建议3.2.2.1:管理页面建议实施强身份认证。

说明:如双因素认证、SSL双向证书认证、生物认证等;还可以通过应用程序限制只允许某些特定的IP地址访问管理页面,并且这些特定的IP地址可配置。 建议3.2.2.2:同一客户端在多次连续尝试登录失败后,服务端需要进行用户帐号或者是客户端所在机器的 IP 地址的锁定策略,且该锁定策略必须设置解锁时长,超时后自动解锁。 说明:

登录失败应该提示用户:如果重试多少次不成功系统将会锁 …… 此处隐藏:5259字,全部文档内容请下载后查看。喜欢就下载吧 ……

华为Web应用安全开发规范(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404402.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)