当前位置:文档之家› Web应用安全开发规范 V1.5

Web应用安全开发规范 V1.5

DKBA 华为技术有限公司内部技术规范

DKBA 1606-XXXX.X Web应用安全开发规范V1.5

2013年XX月XX日发布2013年XX月XX日实施

华为技术有限公司

Huawei Technologies Co., Ltd.

版权所有侵权必究

All rights reserved

修订声明Revision declaration

本规范拟制与解释部门:

网络安全能力中心&电信软件与核心网网络安全工程部

本规范的相关系列规范或文件:

《C&C++语言安全编程规范》《Java语言安全编程规范》

相关国际规范或文件一致性:

替代或作废的其它规范或文件:

相关规范或文件的相互关系:

《产品网络安全红线》和《电信软件与核心网业务部安全能力基线》中的Web安全要求引用了本规范的内容,如果存在冲突,以本规范为准。

目录Table of Contents

1概述 (7)

1.1背景简介 (7)

1.2技术框架 (8)

1.3使用对象 (9)

1.4适用范围 (9)

1.5用词约定 (9)

2常见WEB安全漏洞 (10)

3WEB设计安全规范 (11)

3.1W EB部署要求 (11)

3.2身份验证 (12)

3.2.1口令 (12)

3.2.2认证 (12)

3.2.3验证码 (15)

3.3会话管理 (16)

3.4权限管理 (17)

3.5敏感数据保护 (18)

3.5.1敏感数据定义 (18)

3.5.2敏感数据存储 (18)

3.5.3敏感数据传输 (20)

3.6安全审计 (21)

3.7W EB S ERVICE (22)

3.8REST FUL W EB S ERVICE (23)

3.9DWR (24)

4WEB编程安全规范 (25)

4.1输入校验 (25)

4.2输出编码 (30)

4.3上传下载 (30)

4.4异常处理 (31)

4.5代码注释 (31)

4.6归档要求 (32)

4.7其他 (33)

4.8PHP (34)

5WEB安全配置规范 (36)

6配套CBB介绍 (37)

6.1WAF CBB (37)

6.2验证码CBB (38)

7附件 (38)

7.1附件1T OMCAT配置SSL指导 (38)

7.2附件2W EB S ERVICE 安全接入开发指导 (38)

7.3附件3客户端IP鉴权实施指导 (38)

7.4附件4口令安全要求 (38)

7.5附件5W EB权限管理设计规格说明书 (39)

Web应用安全开发规范V1.5

1 概述

1.1 背景简介

在Internet大众化及Web技术飞速演变的今天,Web安全所面临的挑战日益严峻。黑客攻击技术越来越成熟和大众化,针对Web的攻击和破坏不断增长,Web安全风险达到了前所未有的高度。

许多程序员不知道如何开发安全的应用程序,开发出来的Web应用存在较多的安全漏洞,这些安全漏洞一旦被黑客利用将导致严重甚至是灾难性的后果。这并非危言耸听,类似的网上事故举不胜举,公司的Web产品也曾多次遭黑客攻击,甚至有黑客利用公司Web产品的漏洞敲诈运营商,造成极其恶劣的影响。

本规范就是提供一套完善的、系统化的、实用的Web安全开发方法供Web研发人员使用,以期达到提高Web安全的目的。本规范主要包括三大内容:Web设计安全、Web编程安全、Web配置安全,配套CBB,多管齐下,实现Web应用的整体安全性;本规范主要以JSP/Java编程语言为例。

1.2 技术框架

图1典型的Web安全技术框架

图1 显示了典型的Web安全的技术框架和安全技术点,这些安全技术点,贯穿整个Web设计开发过程。上图各个区域中存在任何一点薄弱环节,都容易导致安全漏洞。

由于HTTP的开放性,Web应用程序必须能够通过某种形式的身份验证来识别用户,并确保身份验证过程是安全的,同样必须很好地保护用于跟踪已验证用户的会话处理机制。为了防止一些恶意输入,还要对输入的数据和参数进行校验。另外还要考虑Web系统的安全配置,敏感数据的保护和用户的权限管理,以及所有操作的安全审计。当然还要考虑代码安全,以及其他方面的威胁。

表 1 列出了一些Web缺陷类别,并针对每类缺陷列出了由于设计不当可能会导致的潜在问题。针对这些潜在的问题,本规范中有相应的解决措施。

表1Web 应用程序缺陷和由于不良设计可能导致的问题

1.3 使用对象

本规范的读者及使用对象主要为Web相关的需求分析人员、设计人员、开发人员、测试人员等。

1.4 适用范围

本规范的制定考虑了公司各种Web应用开发的共性,适合于公司绝大部分Web产品,要求Web产品开发必须遵循。

对于嵌入式系统(如ADSL Modem、硬件防火墙)中的Web应用,由于其特殊性(CPU、内存、磁盘容量有限,没有成熟的Web容器),不强制遵循本规范的所有内容,只需遵循以下章节的规则要求:

3.2身份验证

3.3会话管理

3.5敏感数据保护

4.1输入校验

4.2输出编码

4.3上传下载

4.5代码注释

4.6归档要求

1.5 用词约定

?规则:强制必须遵守的原则

?建议:需要加以考虑的原则

?说明:对此规则或建议进行相应的解释

实施指导:对此规则或建议的实施进行相应的指导

2 常见Web安全漏洞

Web应用的安全漏洞有很多,无法穷举。针对众多的Web漏洞,OWASP的专家们结合各自在各领域的应用安全工作经验及智慧,提出了十大Web应用程序安全漏洞,帮助人们关注最严重的漏洞。(OWASP即开放Web应用安全项目,是一个旨在帮助人们理解和提高Web应用及服务安全性的项目组织。)

表2十大Web应用程序安全漏洞列表

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("JSESSIONID",newSession.getId());

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 地址的锁定策略,且该锁定策略必须设置解锁时长,超时后自动解锁。

说明:

登录失败应该提示用户:如果重试多少次不成功系统将会锁定。在锁定期间不允许该用户帐号(或者客户端所在机器的IP 地址)登录。

允许连续失败的次数(指从最后一次成功以来失败次数的累计值)可配置,取值范围为:0-99 次,0表示不执行锁定策略,建议默认:5 次。

锁定时长的取值范围为:0-999 分钟,建议默认:30 分钟,当取值为0 时,表示无限期锁定,只能通过管理员手动解锁(需要提供管理员对服务器锁定其它用户帐号/IP进行解锁的功能界面)。建议优先使用帐号锁定策略。

注意:应用程序的超级用户帐号不能被锁定,只能锁定操作的客户端所在的IP,这是为了防止系统不可用。特别说明:锁客户端IP策略存在缺陷,当用户使用proxy上网时,那么锁定客户端IP会导致使用该proxy上网的所有用户在IP锁定期间都不能使用该Web

应用;锁定用户帐户的策略也存在缺陷,当攻击者不断尝试某帐户的口令,就给该帐户带来拒绝服务攻击,使该帐户不可用。

3.2.3验证码

规则3.2.3.1:验证码必须是单一图片,且只能采用JPEG、PNG或GIF格式。

说明:验证码不能使用文本格式,不允许多图片组合(如用四个图片拼成的验证码)。

规则3.2.3.2:验证码内容不能与客户端提交的任何信息相关联。

说明:在使用验证码生成模块时不允许接收来自客户端的任何参数,例如:禁止通过getcode.jsp?code=1234的URL请求,将1234作为验证码随机数。

规则3.2.3.3:验证码模块生成的随机数不能在客户端的静态页面中的网页源代码里出现。说明:在客户端网页上点击鼠标右键、选择“查看源文件”时,必须看不到验证码模块生成的随机数。

规则3.2.3.4:验证码字符串要求是随机生成,生成的随机数必须是安全的。

说明:对于java语言可以使用类java.security.SecureRandom来生成安全的随机数。

规则3.2.3.5:验证码要求有背景干扰,背景干扰元素的颜色、位置、数量要求随机变化。规则3.2.3.6:验证码在一次使用后要求立即失效,新的请求需要重新生成验证码。

说明:进行验证码校验后,立即将会话中的验证码信息清空,而不是等到生成新的验证码时再去覆盖旧的验证码,防止验证码多次有效;注意:当客户端提交的验证码为空,验证不通过。

说明:

以上规则可以通过使用电信软件与核心网网络安全工程部提供的验证码CBB来实现。

3.3 会话管理

规则3.3.1:使用会话cookie维持会话。

说明:目前主流的Web容器通过以下几种方式维持会话:隐藏域、URL重写、持久性cookie、会话cookie,但通过隐藏域、URL重写或持久性cookie方式维持的会话容易被窃取,所以要求使用会话cookie维持会话。如果条件限制必须通过持久性cookie维持会话的话,那么cookie信息中的重要数据部分如身份信息、计费信息等都必须进行加密。(cookie有两种:会话cookie和持久性cookie;会话cookie,也就是非持久性cookie,不设置过期时间,其生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了;会话cookie一般不存储在硬盘上而是保存在内存里。持久性cookie,设置了过期时间,被浏览器保存到硬盘上,关闭后再次打开浏览器,持久性cookie仍然有效直到超过设定的过期时间。)

备注:对于嵌入式系统的Web,不适合本条规则,按“规则3.3.9”实施。

规则3.3.2:会话过程中不允许修改的信息,必须作为会话状态的一部分在服务器端存储和维护。

说明:会话过程中不允许修改的信息,例如,当用户通过认证后,其用户标识在整个会话过程中不能被篡改。禁止通过隐藏域或URL重写等不安全的方式存储和维护。对JSP语言,就是应该通过session对象进行存储和维护。

规则3.3.3:当Web应用跟踪到非法会话,则必须记录日志、清除会话并返回到认证界面。说明:非法会话的概念就是通过一系列的服务端合法性检测(包括访问未授权资源,缺少必要参数等情况),最终发现的不是正常请求产生的会话。

规则3.3.4:禁止使用客户端提交的未经审核的信息来给会话信息赋值。

说明:防止会话信息被篡改,如恶意用户通过URL篡改手机号码等。

规则3.3.5:当用户退出时,必须清除该用户的会话信息。

说明:防止遗留在内存中的会话信息被窃取,减少内存占用。

实施指导:对于JSP或java语言使用如下语句:request.getSession().invalidate();

规则3.3.6:必须设置会话超时机制,在超时过后必须要清除该会话信息。

说明:建议默认会话超时时间为10分钟(备注:对于嵌入式系统中的Web,建议默认超时

时间为5分钟,以减少系统资源占用)。如果没有特殊需求,禁止使用自动发起请求的机制来阻止session超时。

规则3.3.7:在服务器端对业务流程进行必要的流程安全控制,保证流程衔接正确,防止关键鉴别步骤被绕过、重复、乱序。

说明:客户端流程控制很容易被旁路(绕过),因此流程控制必须在服务器端实现。

实施指导:可以通过在session对象中创建一个表示流程当前状态的标识位,用0、1、2、3、…、N分别表示不同的处理步骤,标识位的初始值为0,当接收到步骤N的处理请求时,判断该标识位是否为N-1,如果不为N-1,则表示步骤被绕过(或重复或乱序),拒绝受理,否则受理,受理完成后更改标识位为N。

规则3.3.8:所有登录后才能访问的页面都必须有明显的“注销(或退出)”的按钮或菜单,如果该按钮或菜单被点击,则必须使对应的会话立即失效。

说明:这样做是为了让用户能够方便地、安全地注销或退出,减小会话劫持的风险。

规则3.3.9:如果产品(如嵌入式系统)无法使用通用的Web容器,只能自己实现Web服务,那么必须自己实现会话管理,并满足以下要求:

?采用会话cookie维持会话。

?生成会话标识(session ID)要保证足够的随机、离散,以便不能被猜测、枚举,要求session ID要至少要32字节,要支持字母和数字字符集。

?服务端必须对客户端提交的session ID的有效性进行校验。

说明:在嵌入式系统中部署Web应用,由于软硬件资源所限,往往无法使用通用的Web容器及容器的会话管理功能,只能自己实现。另外,为了节省内存,嵌入式webserver进程往往是动态启动,为了使session更快的超时,建议增加心跳机制,对客户端浏览器是否关闭进行探测,5s一个心跳,30s没有心跳则session超时,关闭该session。

3.4 权限管理

规则3.4.1:对于每一个需要授权访问的页面或servlet的请求都必须核实用户的会话标识是否合法、用户是否被授权执行这个操作。

说明:防止用户通过直接输入URL,越权请求并执行一些页面或servlet;建议通过过滤器实现。

实施指导:请参考“附件5 Web权限管理设计规格说明书.docx”。

规则3.4.2:授权和用户角色数据必须存放在服务器端,不能存放在客户端,鉴权处理也必须在服务器端完成。

说明:禁止将授权和角色数据存放在客户端中(比如cookie或隐藏域中),以防止被篡改。规则3.4.3:一个帐号只能拥有必需的角色和必需的权限。一个组只能拥有必需的角色和必需的权限。一个角色只能拥有必需的权限。

说明:做到权限最小化和职责分离(职责分离就是分清帐号角色,系统管理帐号只用于系统管理,审计帐号只用于审计,操作员帐号只用于业务维护操作,普通用户帐号只能使用业务。)这样即使帐号被攻击者盗取,也能把安全损失控制在最小的限度。

规则3.4.4:对于运行应用程序的操作系统帐号,不应使用“root”、“administrator”、“supervisor”等特权帐号或高级别权限帐号,应该尽可能地使用低级别权限的操作系统帐号。

规则3.4.5:对于应用程序连接数据库服务器的数据库帐号,在满足业务需求的前提下,必须使用最低级别权限的数据库帐号。

说明:根据业务系统要求,创建相应的数据库帐号,并授予必需的数据库权限。不能使用“sa”、“sysman”等管理帐号或高级别权限帐号。

3.5 敏感数据保护

3.5.1敏感数据定义

敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等,在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据。

3.5.2敏感数据存储

规则3.5.2.1:禁止在代码中存储敏感数据。

说明:禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。用于加密密钥的密钥可以硬编码在代码中。

规则3.5.2.2:禁止密钥或帐号的口令以明文形式存储在数据库或者文件中。

说明:密钥或帐号的口令必须经过加密存储。例外情况,如果Web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不用强制遵循该规则,将该配置文件的属

性改为只有属主可读写。

规则3.5.2.3:禁止在cookie 中以明文形式存储敏感数据。

说明:cookie信息容易被窃取,尽量不要在cookie中存储敏感数据;如果条件限制必须使用cookie存储敏感信息时,必须先对敏感信息加密再存储到cookie。

规则3.5.2.4:禁止在隐藏域中存放明文形式的敏感数据。

规则3.5.2.5:禁止用自己开发的加密算法,必须使用公开、安全的标准加密算法。

实施指导:

场景1:后台服务端保存数据库的登录口令

后台服务器登录数据库需要使用登录数据库的明文口令,此时后台服务器加密保存该口令后,下次登录时需要还原成明文,因此,在这种情况下,不可用不可逆的加密算法,而需要使用对称加密算法或者非对称加密算法,一般也不建议采用非对称加密算法。

推荐的对称加密算法:AES128、AES192、AES256。

场景2:后台服务端保存用户的登录口令

在该场景下,一般情况是:客户端提交用户名及用户口令,后台服务端对用户名及用户口令进行验证,然后返回验证的结果。此时,在后台服务端,用户口令可以不需要还原,因此建议使用不可逆的加密算法,对“用户名+口令”字符串进行加密。

推荐的不可逆加密算法:SHA256、SHA384、SHA512,HMAC-SHA256、HMAC-SHA384、HMAC-SHA512。

规则3.5.2.6:禁止在日志中记录明文的敏感数据。

说明:禁止在日志中记录明文的敏感数据(如口令、会话标识jsessionid等),防止敏感信息泄漏。

规则3.5.2.7:禁止带有敏感数据的Web页面缓存。

说明:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜问题。

实施指导:

在HTML页面的标签内加入如下代码:

在JSP页面的最前面加入如下代码:

<%

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires",0);

%>

注意:以上代码对于采用强制缓存策略的代理服务器不生效(代理服务器默认是不缓存的),要防止代理服务器缓存页面,可以在链接后加入一个随机数pageid,此时链接变成:

http://localhost:8080/query.do?a=2&pageid=2245562,其中2245562数字是随机生成的,每次请求此页面时,随机数都不同,IE始终认为此为一个新请求,并重新解析,生成新的响应页面。

3.5.3敏感数据传输

规则3.5.3.1:带有敏感数据的表单必须使用HTTP-POST 方法提交。

说明:禁止使用HTTP-GET 方法提交带有敏感数据的表单(form),因为该方法使用查询字符串传递表单数据,易被查看、篡改。如果是使用servlet处理提交的表单数据,那么不在doGet方法中处理,只在doPost方法处理。

实施指导:

1. 对于JSP页面,将表单的属性method赋值为"post",如下

2. 如果是使用servlet处理提交的表单数据,那么只在doPost方法中处理,参考代码如下public class ValidationServlet extends HttpServlet

{

WEB安全编程技术规范(V1.0)

1.范围 本规范从应用开发安全管理要求出发,给出了WEB编码安全的具体要求。供浙江公司IT系统内部和厂商使用,适用于省市公司IT系统项目建设WEB工作。 本规范明确定义了JA V A、PHP应用开发中和WEB编码安全相关的技术细节。 与JA V A编码安全相关的内容包括:跨站脚本攻击及解决方法、SQL注入及解决方法、恶意文件执行及解决方法、不安全的直接对象引用及解决方法、跨站请求伪造及解决方法、信息泄露和错误处理不当及解决方法、残缺的认证和会话管理及解决方法、不安全的加密存储及解决方法、不安全的通信及解决方法、限制URL 访问实效解决方法。 与PHP编码安全相关的内容包括:变量滥用及解决方法、文件打开漏洞及解决方法、文件包含漏洞及解决方法、文件上传漏洞及解决方法、命令执行漏洞及解决方法、变量类型缺陷及解决方法、警告及错误信息处理解决方法、PHP与MYSQL 组合的SQL注入解决方法、跨站脚本解决方法。 2.1.规范概述 Web应用程序为结构设计人员、设计人员和开发人员提出一系列复杂的安全问题。最安全、最有能力抵御攻击的Web应用程序是那些应用安全思想构建的应用程序。 在设计初始阶段,应该使用可靠的体系结构和设计方法,同时要结合考虑程序部署以及企业的安全策略。如果不能做到这一点,将导致在现有基础结构上部署应用程序时,要不可避免地危及安全性。 本规范提供一系列安全的体系结构和设计指南,并按照常见的应用程序漏洞类别进行组织。这些指南是Web应用程序安全的重要方面,并且是经常发生错误的领域。

2.实现目标 使用本规范可以实现: 1.确定安全Web应用程序的重要体系结构和设计问题。 2.设计时考虑重要部署问题。 3.制定能增强Web应用程序输入验证的策略。 4.设计安全的身份验证和会话管理机制。 5.选择适当的授权模型。 6.实现有效的帐户管理方法,并保护用户会话。 7.对隐私、认可、防止篡改和身份验证信息进行加密。 8.防止参数操作。 9.设计审核和记录策略。 3.安全编码原则 1.程序只实现你指定的功能 2.永不要信任用户输入,对用户输入数据做有效性检查 3.必须考虑意外情况并进行处理 4.不要试图在发现错误之后继续执行 5.尽可能使用安全函数进行编程 6.小心、认真、细致地编程 4.安全背景知识 本规范主要提供设计应用程序时应该遵循的一些指南和原则。为充分理解本规范内容,请:了解应用程序将会受到的威胁,以确保通过程序设计解决这些问题。解需要考虑的威胁。在程序设计阶段应该考虑到这些威胁。 在应用程序易受攻击的重要环节应用系统的方法。将重点放在程序部署、输入验证、身份验证和授权、加密及数据敏感度、配臵、会话、异常管理以及适当的审核和记录策略上,以确保应用程序具有责任性。

Web安全系统测试要求规范

DKBA DKBA 2355-2009.7 .2cto.红黑联盟收集整理 Web应用安全测试规V1.2 2009年7月5日发布2009年7月5日实施 所有侵权必究 All rights reserved

修订声明Revision declaration 本规拟制与解释部门: 安全解决方案部电信网络与业务安全实验室、软件公司安全TMG、软件公司测试业务管理部 本规的相关系列规或文件: 《Web应用安全开发规》 相关国际规或文件一致性: 《OWASP Testing Guide v3》 《信息安全技术信息安全风险评估指南》 《Information technology Security techniques Management of information and communications technology security》-ISO 13335 替代或作废的其它规或文件: 无 相关规或文件的相互关系: 本规以《Web应用安全开发规》为基础、结合Web应用的特点而制定。

目录Table of Contents 1概述 (7) 1.1背景简介 (7) 1.2适用读者 (7) 1.3适用围 (7) 1.4安全测试在IPD流程中所处的位置 (8) 1.5安全测试与安全风险评估的关系说明 (8) 1.6注意事项 (9) 1.7测试用例级别说明 (9) 2测试过程示意图 (10) 3WEB安全测试规 (11) 3.1自动化W EB漏洞扫描工具测试 (11) 3.1.1AppScan application扫描测试 (12) 3.1.2AppScan Web Service 扫描测试 (13) 3.2服务器信息收集 (13) 3.2.1运行权限测试 (13) 3.2.2Web服务器端口扫描 (14) 3.2.3HTTP方法测试 (14) 3.2.4HTTP PUT方法测试 (15) 3.2.5HTTP DELETE方法测试 (16) 3.2.6HTTP TRACE方法测试 (17) 3.2.7HTTP MOVE方法测试 (17) 3.2.8HTTP COPY方法测试 (18) 3.2.9Web服务器版本信息收集 (18) 3.3文件、目录测试 (20) 3.3.1工具方式的敏感接口遍历 (20) 3.3.2Robots方式的敏感接口查找 (21)

基于WEB的应用系统安全方案

第二章系统安全的需求分析 本章从数据安全和业务逻辑安全两个角度对应用系统的安全进行需求分析,主要包括保密性需求、完整性需求、可用性需求三部分;随后对业务逻辑安全需求进行了分析,包括身份认证、访问控制、交易重复提交控制、异步交易处理、交易数据不可否认性、监控与审计等几个方面;最后还分析了系统中一些其它的安全需求。 2.1 数据安全需求 2.1.1 数据保密性需求 数据保密性要求数据只能由授权实体存取和识别,防止非授权泄露。从目前国内应用的安全案例统计数据来看,数据保密性是最易受到攻击的一个方面,通常表现为客户端发生的数据泄密,包括用户的基本信息、账户信息、登录信息等的泄露。在应用系统中,数据保密性需求通常主要体现在以下几个方面:A.客户端与系统交互时输入的各类密码:包括系统登录密码、转账密码、凭证查询密码、凭证交易密码等必须加密传输及存放,这些密码在应用系统中只能以密文的方式存在,其明文形式能且只能由其合法主体能够识别。 以网银系统为例,在网银系统中,通常存有四种密码:系统登录密码、网银转账密码、柜面交易密码及一次性密码。系统登录密码用来认证当前登录者为指定登录名的合法用户,网银用户的登录密码和网银转账密码由用户在柜面开户时指定,用户在首次登录网银系统时,系统必须强制用户修改初始密码,通常要求长度不得少于六位数,且不能是类似于111111、1234567、9876543等的简单数字序列,系统将进行检查。 网银转账密码是指网银系统为巩固用户资金安全,在涉及资金变动的交易中对用户身份进行了再认证,要求用户输入预设的密码,网银交易密码仅针对个人用户使用,企业用户没有网银交易密码。建立多重密码机制,将登录密码与网银转账密码分开管理,有利于加强密码的安全性。由于用户在使用网银时每次都必须先提供登录密码,故登录密码暴露的机会较多,安全性相对较弱;但登录网银的用户并不是每次都会操作账户资金的,所以专门设定网银转账密码可加强账户

网站WEB应用安全措施要求规范

网站WEB应用安全措施要求规范 1.安全防范措施要求 (1)数据保密性:数据加密主要是防止非授权用户截获并使用该数据,网站中有保密要求的信息只能供经过授权允许的人员,并且以经过允许的方式使用。 (2)数据完整性:使用一种方案来确认同站上的数据在传输过程中没有被篡改,而造成信息完整性破坏的原因可以分为人为的和非人为的两种: 非人为的因素:如通信传输中的干扰噪声,系统硬件或软件的故障等; 人为因素:包括有意的和无意的两种,前者如黑客对计算机的入侵、合法用户越权对网站内数据的处理,后者如操作失误或使用不当。 (3)数据安全性:数据的安全性就是保证数据库不被故意破坏和非法存取:数据的完整性是防止数据库中存在不符合语义的数据,以及防止由于错误信息的输入、输出而造成无效操作和错误结果:并发控制即数据库是一个共享资源,在多个用户程序并行地存取数据库时,就可能会产生多个用户程序通过网站并发地存取同一数据的情况,若不进行并发控制就会使取出和存入的数据不正确,破坏数据库的一致性。 (4)恶意代码防范:通过代码层屏蔽常见恶意攻击行为,防止非法数据提交;如:SQL注入; (5)双因子授权认证:应对同一用户采用两种或两种以上组合的鉴别技术实现用户身份鉴别。 (6)密码复杂度:强制用户首次登录时修改初始口令;口令长度至少为8位,并由数字、大小字母与特殊字符组成。 (7)会话过期与超时:浏览器Cookie过期、无动作过期、强制过期、保持会话等进行限制; (8)安全审计功能:a)审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计,如:登录、退出、添加、删除、修改或覆盖等;b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;

(完整版)web服务器安全标准

Web服务器安全标准 前言和文档控制 此文档是西安石油大学制定发布的有关信息安全政策规定、处理流程、行业标准和指导意见的系列文档之一。该文档应保证至少一年审核一次,以保证其有效性。 在没有得到文档发布者的明确授权下,此文档的全部或部分内容,均不得重制或发布。

目录 1目的 (3) 2范围 (3) 3责任 (3) 4Web服务器安全要求 (3) 4.1总则 (3) 4.2网络安全 (3) 4.3流量过滤 (3) 4.4合规性 (4) 4.5数据保护 (4) 4.6输入和输出管理 (4) 4.7安全代码/应用/插件 (4)

1目的 发布本文档所列标准的目的是为了保护学校网站和相关信息资产。本标准的目标是为了确保: ●按照现有最佳的实践经验,在全校统一部署安全控制措施,以消除或者最低限 度的减少系统漏洞和其他安全隐患。 ●学校能在信息安全的完善方面更方便的有据监管、理解风险和评估改进。 ●所有的院系部门和网站开发人员都能了解相应的安全需求 2范围 所列标准适用于学校所有的web网站服务器,包括:学校内部或第三方建设、采购、部署、修改和维护的。具体为: ●所有仅限内部和面向公共的web服务器 ●所有由外部供应商托管的面向公共的web服务器 ●所有通过学校或者代表学校的web服务器建设、采购、部署、修改和维护的 3责任 以下学校实体具体的信息安全责任 ●学校信息化委员会 ●信息安全部门领导 ●信息安全小组应支撑学校满足信息安全功能和防护的各项要求。 ●学院和部门领导对所在部门的信息安全负有义务和责任。 ●Web服务器用户对其处理的信息负有安全责任。 4Web服务器安全要求 4.1总则 4.1.1基于风险分析的深度信息安全防范手段应被采用,包括: 4.1.1.1安全控件在Web服务器的每一层次上都应部署,以避免过度依赖单一 安全防护手段。 4.1.1.2在所有Web服务器上应部署最基本的安全控制措施,以解决常见风险。 4.1.1.3安全控制措施应该是务实的、易于部署、有效和可以衡量的。 4.1.2在虚拟化环境中,所有能考虑到的安全因素都应当适用于主机系统、虚拟机 管理层和虚拟化管理工具。 4.1.3渗透性测试每年至少执行一次,并且在重要系统架构部署、应用升级或修改 后,都应测试。 4.1.4每季度应执行一次漏洞扫描。 4.2网络安全 4.2.1安全控制措施应涵盖每一个活跃版本的网络协议,包括IPv4和IPv6。 4.2.2Web服务器都应分配相应的静态IP地址,除了需要部署动态域名系统技术以 实现负载均衡的服务器。 4.2.3只使用唯一可信的授权DNS来源,避免受到DNS劫持和攻击。 4.2.4所有的非console口管理员级别的访问应使用高强度加密手段进行加密。 4.3流量过滤 4.3.1只有从Internet到特定的IP地址和授权的公共可用服务、协议和端口的入 站流量是允许的。 4.3.2从Web服务器的非授权出站流量是禁止的。

华为Web应用安全开发规范

DKBA 华为技术有限公司内部技术规范 DKBA 1606-XXXX.X Web应用安全开发规范V1.5 2013年XX月XX日发布2013年XX月XX日实施华为技术有限公司 Huawei Technologies Co., Ltd. 版权所有侵权必究 All rights reserved 修订声明Revision declaration 本规范拟制与解释部门: 网络安全能力中心&电信软件与核心网网络安全工程部 本规范的相关系列规范或文件: 《C&C++语言安全编程规范》《Java语言安全编程规范》相关国际规范或文件一致性: 无 替代或作废的其它规范或文件: 无 相关规范或文件的相互关系:

《产品网络安全红线》和《电信软件与核心网业务部安全能力基线》中的Web安全要求引用了本规范的内容,如果存在冲突,以本规范为准。 规范号主要起草部门专家主要评审部门专家修订情况 DKBA 1606-2007.4 安全解决方案:赵武42873,杨光磊57125,万振华55108 软件公司设计管理部:刘茂征11000,刘高峰63564,何伟祥33428 安全解决方案:刘海军12014,吴宇翔18167,吴海翔57182 接入网:彭东红27279 无线:胡涛46634 核心网:吴桂彬41508,甘嘉栋33229,马进32897,谢秀洪33194,张毅27651,张永锋40582 业软:包宜强56737,丁小龙63583,董鹏越60793,傅鉴杏36918,傅用成30333,龚连阳18753,胡海,胡海华52463,李诚37517,李大锋54630,李战杰21615,刘创文65632,刘飞46266,刘剑51690,栾阳62227,罗仁钧65560,罗湘武06277,马亮,孟咏喜22499,潘海涛27360,孙林46580,王福40317,王锦亮36430,王美玲,王谟磊65558,王玉龙24387,杨娟,张锋43381,张健,张轶57143,邹韬51591 V1.0 何伟祥33428 刘高峰63564,龚连阳00129383,许汝波62966,吴宇翔00120395,王欢00104062,吕晓雨56987 V1.2 增加了Web Service、Ajax和上传和下载相关的安全规范。 何伟祥V1.3 增加了防止会话固定和防止跨站请求伪造的安全规范。 何伟祥V1.4 增加了"规则 3.4.1"的实施指导;删除了"建议 3.4.1";修改了"6 配套CBB介绍"的内容和获取方式。增加了"3.9 DWR" 何伟祥00162822 吴淑荣00197720 魏建雄00222906 谢和坤00197709 李田00042091 孙波00175839 朱双红00051429 王伟00207440 陈伟00141500 V1.5 增加"规则3.3.9、规则 3.6.5、规则 4.7.1、建议 4.7.2、4.8 PHP" 增加"3.8 RESTful Web Service" 修改"规则3.2.2.8、规则 3.2.2.3、规则 3.4.1、规则 4.6.1" 删除"3.2.1口令策略"和"规则3.1.3、规则 3.2.3.8、规则 4.7.1" 附件文档作为对象直接插入主文档 目录Table of Contents 1 概述7 1.1 背景简介7 1.2 技术框架7 1.3 使用对象8

Web应用安全测试规范

Web应用安全测试规范 Web应用安全测试规范V 1、2全文结束》》年7月5日发布全文结束》》年7月5日实施版权所有侵权必究 All rights reserved 修订声明Revision declaration 本规范拟制与解释部门: 安全解决方案部电信网络与业务安全实验室、软件公司安全TMG、软件公司测试业务管理部本规范的相关系列规范或文件: Web应用安全开发规范相关国际规范或文件一致性: OWASP Testing Guide v3 信息安全技术信息安全风险评估指南Information technology Security techniques Management of information and communications technology securityISO13335 替代或作废的其它规范或文件:无相关规范或文件的相互关系: 本规范以Web应用安全开发规范为基础、结合Web应用的特点而制定。 版本号主要起草部门专家主要评审部门专家修订情况 V 1、1 V 1、2 增加 Web Service、上传、下载、控制台等方面的测试规范,更正V 1、1 一些描述不准确的测试项 目录Table of Contents1 概述、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、7 1、 1 背景简介、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、7 1、 2 适用读者、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

系统安全配置技术规范-Websphere

系统安全配置技术规范—Websphere

文档说明(一)变更信息 (二)文档审核人

目录 1.适用范围4 2.帐号管理与授权4 2.1............................................................................. 【基本】控制台帐号安全 4 2.2............................................................................. 【基本】帐号的口令安全 4 2.3............................................................. 【基本】为应用用户定义合适的角色 5 2.4................................................................................... 【基本】控制台安全 5 2.5............................................................... 【基本】全局安全性与J AVA2安全 6 3.日志配置要求6 3.1.......................................................................... 【基本】开启应用日志记录 6 4.服务配置要求7 4.1.......................................................................... 【基本】禁止列表显示文件 7 4.2................................................................... 【基本】禁止浏览列表显示目录 7 4.3................................................................................ 【基本】删除示例程序 8 4.4............................................................................. 【基本】控制台超时设置 8

WEB安全编程技术规范

1.范围 本规范从WEB应用开发安全管理要求出发,给出了WEB编码安全的具体要求。 本规范明确定义了JAVA应用开发中和WEB编码安全相关的技术细节。 与JAVA编码安全相关的内容包括:跨站脚本攻击及解决方法、SQL注入及解决方法、恶意文件执行及解决方法、不安全的直接对象引用及解决方法、跨站请求伪造及解决方法、信息泄露和错误处理不当及解决方法、残缺的认证和会话管理及解决方法、不安全的加密存储及解决方法、不安全的通信及解决方法、限制URL访问实效解决方法等。 2.1.规范概述 Web应用程序为架构设计人员、开发人员、测试人员和运维运营人员提出一系列复杂的安全问题,最安全、最有能力抵御攻击的Web应用程序是那些应用安全思想构建的应用程序。 在设计初始阶段,应该使用可靠的体系结构和设计方法,同时要结合考虑程序部署以及企业的安全策略。如果不能做到这一点,将导致在现有基础结构上部署应用程序时,要不可避免地危及安全性。 本规范提供一系列安全的体系结构和设计指南,并按照常见的应用程序漏洞类别进行组织。这些指南是Web应用程序安全的重要方面,并且是经常发生错误的领域。 2.实现目标 使用本规范可以实现: 1.确定安全Web应用程序的重要体系结构和设计问题。 2.设计时考虑重要部署问题。 3.制定能增强Web应用程序输入验证的策略。 4.设计安全的身份验证和会话管理机制。 5.选择适当的授权模型。 6.实现有效的帐户管理方法,并保护用户会话。 7.对隐私认可并防止篡改,和对身份验证信息进行加密。

8.防止参数操作。 9.安全漏洞checklist。 10.设计审核和记录策略。 3.安全编码原则 1.程序只实现你指定的功能。 2.永不要信任用户输入,对用户输入数据做有效性检查。 3.必须考虑意外情况并进行处理。 4.不要试图在发现错误之后继续执行。 5.尽可能使用安全函数进行编程。 6.小心、认真、细致地编程。 4.安全背景知识 本规范主要提供设计应用程序时应该遵循的一些指南和原则。为充分理解本规范内容,请: 了解应用程序将会受到的威胁,以确保通过程序设计解决这些问题。了解需要考虑的威胁,在程序设计阶段应该考虑到这些威胁。 在应用程序易受攻击的重要环节应用系统的方法。将重点放在程序部署、输入验证、身份验证和授权、加密及数据敏感度、配臵、会话、异常管理以及适当的审核和记录策略上,以确保应用程序具有健壮性。 5.JAVA安全编程——OWASP TOP10ANDESAPI 5.1OWASP TOP10 与ESAPI OWASP(开放Web应用安全项目-OpenWebApplicationSecurityProject)是一个开放社群、非营利性组织,目前全球有82个分会近万名会员,其主要目是研议协助解决Web 软体安全之准则、工具与技术,长期致力于协助政府或企业并改善网页应用程式与网页服务的安全性。

WEB类应用系统安全防护技术要求

WEB类应用系统安全防护技术要求 Technical Specification of Security for Web Applications 版本号: 1.0.0 中国移动通信有限网络部

目录 前言 (1) 1适用范围 (2) 2引用标准与依据 (2) 3相关术语与缩略语 (2) 3.1术语 (2) 3.1.1注入漏洞 (2) 3.1.2SQL注入攻击 (3) 3.1.3跨站漏洞 (3) 3.1.4跨站攻击 (3) 3.1.5非法上传 (3) 3.1.6缓冲区溢出 (3) 3.1.7非法输入 (3) 3.1.8网站挂马 (3) 3.1.9拒绝服务攻击 (3) 3.1.10跨站请求伪造 (4) 3.1.11目录遍历攻击 (4) 3.2缩略语 (4) 4综述 (4) 5WEB类应用系统基本架构 (5) 5.1业务逻辑结构 (5) 5.2网络结构 (5) 6WEB类应用风险分析 (6) 6.1主要风险分析 (6) 6.2脆弱性分析 (7) 6.2.1物理 (7) 6.2.2网络 (7) 6.2.3设备 (7) 6.2.4应用 (8) 6.2.5内容 (10) 6.2.6管理 (10) 6.3威胁分析 (10) 6.3.1物理 (10) 6.3.2网络 (10) 6.3.3设备 (11) 6.3.4应用 (11) 6.3.5内容 (13) 7WEB类应用系统的安全防护需求 (13) 7.1物理安全需求 (13) 7.2分区防护需求 (13) 7.2.1安全域划分要求 (13) 7.2.2边界整合及域间互联安全要求 (14) 7.3WEB类应用系统自身安全要求 (16) 7.3.1操作系统安全要求 (16) 7.3.2中间件安全要求 (16) 7.3.3数据库安全要求 (17) 7.3.4应用软件自身安全要求 (17) 7.4专用安全设备部署需求 (20)

WEB应用系统安全规范文档

目录 WEB应用系统安全规范................................................. 错误!未定义书签。1概述............................................................ 错误!未定义书签。 目的 .................................................................... 错误!未定义书签。 适用范围 ................................................................ 错误!未定义书签。2范围............................................................ 错误!未定义书签。3名词解释........................................................ 错误!未定义书签。4WEB开发安全规范................................................. 错误!未定义书签。 W EB应用程序体系结构和安全................................................ 错误!未定义书签。 W EB安全编码规范.......................................................... 错误!未定义书签。 区分公共区域和受限区域......................................... 错误!未定义书签。 对身份验证 cookie 的内容进行加密............................... 错误!未定义书签。 限制会话寿命 .................................................. 错误!未定义书签。 使用 SSL 保护会话身份验证 Cookie ............................... 错误!未定义书签。 确保用户没有绕过检查........................................... 错误!未定义书签。 验证从客户端发送的所有数据..................................... 错误!未定义书签。 不要向客户端泄漏信息........................................... 错误!未定义书签。 记录详细的错误信息 ............................................ 错误!未定义书签。 捕捉异常 ...................................................... 错误!未定义书签。 不要信任 HTTP 头信息........................................ 错误!未定义书签。 不要使用 HTTP-GET 协议传递敏感数据 .......................... 错误!未定义书签。 不要在永久性 cookie 中存储敏感数据 .......................... 错误!未定义书签。 对数据进行加密或确保通信通道的安全 .......................... 错误!未定义书签。 SQL 语句的参数应以变量形式传入 .............................. 错误!未定义书签。 页面中的非源代码内容应经过 URI 编码 ......................... 错误!未定义书签。

WEB应用系统安全规范文档

WEB 应用系统安全规范 目录 WEB应用系统安全规范 ............................. 错误!未定义书签。 1 概述................................... 错误! 未定义书签。 目的............................................................................. 错误! 未定义书 签。 适用范围 ......................................................................... 错误! 未定义书 签。 2 范围................................... 错误! 未定义书签。 3 名词解释.................................. 错误! 未定义书签。 4 WEB开发安全规范.............................. 错误!未定义书签。 VEB应用程序体系结构和安全............................ 错误!未定义书签。 VE B安全编码规范 ............................... 错误!未定义书签。 区分公共区域和受限区域. ........................................ 错误!未定义书签。 对身份验证cookie 的内容进行加密. .................................... 错误!未定义书签。 限制会话寿命............................ 错误!未定义书签。 使用SSL 保护会话身份验证Cookie . ................................... 错误!未定义书签。 确保用户没有绕过检查.......................... 错误!未定义书签。 验证从客户端发送的所有数据. ........................................ 错误!未定义书签。 不要向客户端泄漏信息.......................... 错误! 未定义书签。 记录详细的错误信息......................... 错误! 未定义书签。 捕捉异常.............................. 错误!未定义书签。 不要信任HTTP 头信息...................... 错误! 未定义书签。 不要使用HTTP-GET 协议传递敏感数据 ............... 错误! 未定义书签。 不要在永久性cookie 中存储敏感数据.................. 错误! 未定义书签。 对数据进行加密或确保通信通道的安全................. 错误!未定义书签。 SQL 语句的参数应以变量形式传入 .................. 错误!未定义书签。 页面中的非源代码内容应经过URI 编码................ 错误! 未定义书签。 页面中拼装的脚本应校验元素来源的合法性............... 错误! 未定义书签。 页面请求处理应校验参数的最大长度................. 错误! 未定义书签。 登录失败信息错误提示应一致.................... 错误! 未定义书签。 避免页面上传任意扩展名的文件.................... 错误! 未定义书签。 避免接受页面中的主机磁盘路径信息................. 错误! 未定义书签。 第三方产品的合法性......................... 错误! 未定义书签。 5 系统部署安全规范.............................. 错误! 未定义书签。 部署架构和安全 .................................................................. 错误!未定义书签。 网络基础结构组件........................... 错误!未定义书签。

Java Web安全开发规范

Java Web安全开发规范

1.目的 保障WEB应用平台的安全性,保证WEB应用系统的可用性、完整性和保密性从安全角度规范WEB应用系统开发人员,能够让WEB应用开发者树立很强的安全意识,在开发过程中编写安全代码,进行安全编程。 2.范围 本规范从应用安全开发角度出发,给出WEB应用系统安全开发的规范。供软通动力内部使用,适用各个WEB应用系统项目开发的工作。 本规范定义了WEB应用系统安全开发和WEB编码安全相关的技术要求。 3.规范概述 WEB应用系统为架构设计人员、开发人员提出了一系列复杂的安全问题。最安全、最有能力抵御攻击的Web应用程序是那些应用安全思想构建的应用程序。 在设计初始阶段,应该使用可靠的安全体系结构和设计方法,同时要结合考虑应用程序的部署以及企业的安全策略。如果不能做到这一点,将导致在现有基础结构上部署应用程序时,要不可避免地危及网站系统的安全性。 本规范提供初步的安全体系结构和设计指南,并按照常见的应用程序漏洞类别进行组织。这些指南是WEB应用程序安全的重要方面,并且是经常发生错误的领域。 4.安全编码原则 ◆程序只实现你指定的功能 ◆永不要信任用户输入,对用户输入数据有效性检查 ◆必须考虑意外情况并进行处理 ◆不要试图在发现错误之后继续执行 ◆尽可能使用安全函数进行编程 ◆小心、认真、细致地编程 5.软件编码安全 5.1.输入校验 WEB应用程序从各个方面获取输入,例如所有用户发送的,或者Web应用程序与用户

交互往返的数据(用户提交的数据,cookie信息,查询字符串参数),以及后台数据(数据库、配置文件、其他数据来源)。所有输入的数据都会在某种情况下影响请求的处理。 正确的输入验证是防御目前应用程序攻击的最有效方法之一。正确的输入验证是防止XSS、SQL注入、缓冲区溢出和其他输入攻击的有效对策。 以下做法可以增强Web应用程序的输入验证: 假定所有输入都是恶意的 开始输入校验时,首先假定所有输入都是恶意的,除非有证据表明它们并无恶意,无论输入是来自服务、共享文件、用户还是数据库,只有其来源不在 可信任的范围之内,就应对输入进行验证。 集中方法 将输入验证策略作为应用程序的核心元素。考虑集中式验证方法,例如通过使用共享库中的公共验证和筛选代码。这确保验证规则应用的一致性。此外 还能减少开发工作量,并且有助于以后的维护工作。 不要依赖客户端验证 应使用服务器端代码执行其自身的验证,如果攻击者绕过客户端或者禁用客户端JavaScript脚本,后果如何?使用客户端验证可以减少客户端到服务器 端的往返次数,但是不要依赖这种方法进行安全验证。 注意标准化问题 数据的标准形式是最标准、最简单的形式。标准化是指将数据转化为标准形式的过程。文件路径和URL尤其倾向于标准化问题。 例如/www/public/testfile.jsp /www/public/../public/testfile.jsp /www/public///testfile.jsp %2fwww%2fpublic%2f%2f%2ftestfile.jsp 都表示同一个文件。 通常,应设法避免让应用程序接受用户输入的文件名,以防止标准化问题。 可以考虑其他方式,例如由应用程序为用户确定文件名。如果确实需要用户输 入文件名,在作出安全决策(如授予或拒绝特定文件的访问权限)之前应确保 这些文件名具有严格定义的形式。 限制输入 定义应用程序字段可以接受的数据输入,并强制应用该定义,拒绝一切有害数据。 验证数据的类型、长度、格式和范围 在适当的地方对输入数据使用强类型检查,可以使用参数化的存储过程来访问数据。 应该检查字符串字段的长度,在许多情况下还应检查字符串的格式是否正确,例如邮政编码、手机号码、身份证号码等都具有明确定义的格式,可以使 用常规表达式进行验证。长度检查会加大攻击者实施其所喜欢的攻击方式的难 度。 拒绝已知的有害输入 例如查询条件中禁止输入or 1=1等。 净化输入 净化包括从删除用户输入字符串后面的空格到去除值等一切行为。常见的净化输入示例是使用URL编码或者HTML编码来包装数据,并将其作为文本而

WEB应用系统安全规范

W E B应用系统安全规范 Document number:BGCG-0857-BTDO-0089-2022

WEB应用系统安全规范 目录

1概述 1.1目的 为规范我司Java Web应用编码和部署的安全控制和管理,特制定本规范,并作为安全检查及考核的参考依据。

1.2适用范围 本规范适用于我司所有在线Java业务系统、测试系统的WEB应用。 本规范可作为其他非WEB应用的编码和部署安全办法参考。 2范围 本规范中列出的是常见安全措施和高风险的漏洞,在系统开发与系统部署的过程中,对本规范未能尽述的必要安全措施,仍应予以采用。 本规范每年复审一次,其它时候也可以根据需要进行修订并发布。本规范的解释权和修改权归属信息技术部。 3名词解释 验证:通讯实体(例如,客户端和服务器)彼此验证,以经过访问授权的特定标识为依据。 资源的访问控制:资源的交互仅限于某些用户或程序的集合,其目的是对完整性,保密性或可用性实施强制约束。 数据完整性:检验信息是否被第三方(非信息源的其它实体)修改。例如,处于开放网络环境中的数据接收方必须能够检测并丢弃那些在传递过程中被修改过的消息。 机密性或数据隐私:确保信息仅对经过访问授权的用户可用。 不可否认:对用户进行检验,让他无法否认自己进行过的活动。

审核:捕获一个安全相关事件的防篡改记录,目的是评估安全策略和机制的有效性。 4Web开发安全规范 4.1Web应用程序体系结构和安全 HTTP 是无国界的,这意味着跟踪每位用户的会话状态将成为应用程序的责任。应用程序必须能够通过某种形式的身份验证来识别用户。由于所有后续授权决策都要基于用户的标识,因此,身份验证过程必须是安全的,同样必须很好地保护用于跟踪已验证用户的会话处理机制。设计安全的身份验证和会话管理机制仅仅是Web 应用程序设计人员和开发人员所面临的众多问题中的两个方面。由于输入和输出数据要在公共网络上进行传输,因此还会存在其他挑战。防止参数操作和敏感数据泄漏也是另外一些重要问题。

系统安全配置技术规范-Websphere

系统安全配置技术规范—Websphere 版本V0.9 日期2013-06-03 文档编号 文档发布

文档说明 (一)变更信息 版本号变更日期变更者变更理由/变更内容备注 (二)文档审核人 姓名职位签名日期

目录 1.适用范围 (4) 2.帐号管理与授权 (4) 2.1【基本】控制台帐号安全 (4) 2.2【基本】帐号的口令安全 (4) 2.3【基本】为应用用户定义合适的角色 (5) 2.4【基本】控制台安全 (5) 2.5【基本】全局安全性与J AVA 2 安全 (6) 3.日志配置要求 (6) 3.1【基本】开启应用日志记录 (6) 4.服务配置要求 (7) 4.1【基本】禁止列表显示文件 (7) 4.2【基本】禁止浏览列表显示目录 (7) 4.3【基本】删除示例程序 (8) 4.4【基本】控制台超时设置 (8) 4.5【基本】更新 W EB S PHERE补丁 (8) 4.6【基本】备份容错 (9) 4.7设置错误页面 (9) 4.8配置 SSL 访问 (9) 4.9控制目录权限 (11) 5.操作系统配置要求 (11)

1.适用范围 如无特殊说明,本规范所有配置项适用于IBM WebSphere Application Server (WAS) 6.x,7.x ,8.x 版本。其中标示为“基本”字样的配置项,均为本公司对此类系统的基本安全配置 要求;未标示“基本”字样的配置项,请各系统管理员视实际需求酌情遵从。 2.帐号管理与授权 2.1 【基本】控制台帐号安全 配置 WebSphere 控制台帐号安全,要求按权利需要分配不同用户角色,同时 配置项描述 保证权限最小化 以管理员身份打开管理控制台,执行: 检查方法 1.点击“系统管理”-->”控制台设置”-->“控制台用户” 2.点击要查看的用户名 3.查看用户所属组 要求不得出现共用特权管理帐号,管理帐号必须按角色分配用户角色为 操作步骤monitor(监控员)、Configurator( 配置员 )、Operator(操作员) Administrator( 管理员 )之 回退操作回退到原有的配置设置 操作风险低风险 2.2 【基本】帐号的口令安全 配置项描述配置 WebSphere 口令安全,要求用户口令至少 6 位,包括大小写,数字和符号中的至少两种 检查方法 询问管理员是否存在如下类似的简单用户密码配置,比如: Test、 netscreen、 admin、 root1234 操作步骤检查用户口令的设置情况,检查是否存在简单密码。要求密码长度最少为6位,包含大小写字母、数字和特殊符号,密码变更周期。 回退操作回退到原有的配置设置

WEB应用系统安全规范

WEB应用系统安全规范 目录 WEB应用系统安全规范 (1) 1概述 (2) 1.1目的 (2) 1.2适用范围 (3) 2范围 (3) 3名词解释 (3) 4WEB开发安全规范 (4) 4.1W EB应用程序体系结构和安全 (4) 4.2W EB安全编码规范 (6) 4.2.1区分公共区域和受限区域 (6) 4.2.2对身份验证cookie 的内容进行加密 (6) 4.2.3限制会话寿命 (6) 4.2.4使用SSL 保护会话身份验证Cookie (6) 4.2.5确保用户没有绕过检查 (6) 4.2.6验证从客户端发送的所有数据 (7) 4.2.7不要向客户端泄漏信息 (7) 4.2.8记录详细的错误信息 (7) 4.2.9捕捉异常 (7) 4.2.10不要信任HTTP 头信息 (7) 4.2.11不要使用HTTP-GET 协议传递敏感数据 (7) 4.2.12不要在永久性cookie 中存储敏感数据 (7) 4.2.13对数据进行加密或确保通信通道的安全 (8) 4.2.14SQL 语句的参数应以变量形式传入 (8) 4.2.15页面中的非源代码内容应经过URI 编码 (8) 4.2.16页面中拼装的脚本应校验元素来源的合法性 (8) 4.2.17页面请求处理应校验参数的最大长度 (8) 4.2.18登录失败信息错误提示应一致 (9) 4.2.19避免页面上传任意扩展名的文件 (9) 4.2.20避免接受页面中的主机磁盘路径信息 (9) 4.2.21第三方产品的合法性 (9) 5系统部署安全规范 (9) 5.1部署架构和安全 (9) 5.1.1网络基础结构组件 (10)

相关主题
文本预览
相关文档 最新文档