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

2019-07-30 13:28

规则4.7.1:对于JSP语言,所有servlet必须进行静态映射,不允许通过绝对路径访问。

说明:在web.xml文件中为servlet配置URI映射,使用servlet时,引用它的URI映射,而不允许通过绝对路径访问。 规则4.7.2:对客户端提交的表单请求进行合法性校验,防止跨站请求伪造攻击。 说明:跨站请求伪造(CSRF)是一种挟制终端用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。攻击者可以迫使用户去执行攻击者预先设置的操作,例如,如果用户登录网络银行去查看其存款余额,他没有退出网络银行系统就去了自己喜欢的论坛去灌水,如果攻击者在论坛中精心构造了一个恶意的链接并诱使该用户点击了该链接,那么该用户在网络银行帐户中的资金就有可能被转移到攻击者指定的帐户中。当CSRF针对普通用户发动攻击时,将对终端用户的数据和操作指令构成严重的威胁;当受攻击的终端用户具有管理员帐户的时候,CSRF攻击将危及整个Web应用程序。 实施指导:

方法一:为每个session创建唯一的随机字符串,并在受理请求时验证

//判断客户端提交的随机字符串是否正确

String randomStr = (String)request.getParameter(\if(randomStr == null) randomStr=\

if(randomStr.equals(request.getSession().getAttribute(\{//处理请求} else{

//跨站请求攻击,注销会话 }

方法二:受理重要操作请求时,在相应的表单页面增加图片验证码,用户提交操作请求的同时提交验证码,在服务器端先判断用户提交的验证码是否正确,验证码正确再受理操作请求。

方法三:向电信软件与核心网网络安全工程部申请WAF CBB,并部署到应用中,启用AntiCSRF功能,具体方法参考WAF CBB的用户手册。

规则4.7.3:使用.innerHtml时,如果只是要显示文本内容,必须在innerHTML取得内容后,再用正则表达式去除HTML标签,以预防跨站脚本。

说明:使用.innerHtml会将内容以HTML显示,容易被利用,导致跨站脚本。 实施指导:

href=\?>/gim,''))\无HTML,符合W3C标准

备注:还可以使用.innerText代替.innerHtml,.innerText只显示文本内容不显示HTML标签,但.innerText不是W3C标准的属性,不能适用于所有浏览器(但适

用于IE浏览器)。

规则4.7.4:禁止使用eval()函数来处理用户提交的字符串。

说明:eval()函数存在安全隐患,该函数可以把输入的字符串当作JavaScript表达式执行,容易被恶意用户利用。

建议4.7.1:关闭登录窗体表单中的自动填充功能,以防止浏览器记录用户名和口令。 说明:浏览器都具有自动保存用户输入数据和自动填充数据的能力。为了保障用户名和口令的安全,必须关闭自动填充选项,指示浏览器不要存储登录窗口中用户名、口令等敏感信息。 实施指导:

在form表单头中增加选项(autocomplete=\),例如:

说明:框架盗链和点击劫持(ClickJacking)都利用到框架技术,防范措施就是防止网页被框架。 实施指导:

方法一:在每个网页上增加如下脚本来禁止iframe嵌套: <

方法二:

向电信软件与核心网网络安全工程部申请WAF CBB,并部署到应用中,启用AntiClickjackMode功能,具体方法参考WAF CBB的用户手册。 4.8 PHP

规则4.8.1:禁止使用phpinfo()。

说明:phpinfo()函数提供了详细的服务器PHP环境配置信息,是PHP提供的一个比较方便的排错工具。但是往往因为开发人员的一时疏忽,把带有phpinfo()的页面部署到生产环境上, 造成严重的信息泄露,给潜在攻击者提供了很大的便利。因此在生产环境中应禁止使用phpinfo()函数,以避免不必要的安全隐患。 实施指导:

修改php.ini文件中的disable_functions配置项,把“phpinfo”添加到清单中: disable_functions=phpinfo

备注:如果要禁用多个函数,函数名之间用逗号隔开。 规则4.8.2:避免使用eval()、exec()、passthru()、popen()、proc_open()、system()、shell_exec()、pcntl_exec(),如非得使用,必须对输入参数进行严格的输入校验(如:长度、范围、类型校验),并使用escapeshellcmd() 、escapeshellarg()函数对其参数进行转义处理。

说明:这些是PHP用于调用底层系统命令的函数,如对其参数过滤不严,将容易导致“系统命令执行”漏洞,使黑客轻易地执行系统命令并获得服务器的shell权限。另外所谓的webshell会通过这些函数跟底层系统进行交互,因此关闭这些函数可有效地降低webshell的安全威胁。 实施指导:

1、当不使用这些函数时,需通过disable_functions配置项禁止这些函数的使用: 修改php.ini文件中的disable_functions配置项,把要禁用的函数添加到disable_functions参数值中,多个函数,用逗号分开,例如:disable_functions=phpinfo,get_cfg_var,eval,exec,passthru,popen,proc_open,system,shell_exec,pcntl_exec

2、当使用这些函数时,应使用escapeshellcmd()或escapeshellarg()对其参数进行过滤。

escapeshellcmd():

$command = './configure '.$_POST['configure_options']; $escaped_command = escapeshellcmd($command); system($escaped_command); ?>

escapeshellarg():

system('ls ' . escapeshellarg($dir)); ?>

规则4.8.3:在使用include()、include_once()、require()、require_once()、show_source()、highlight_file()、readfile()、file_get_contents()、fopen()、file()等文件读取函数时,应对参数进行严格的合规性检查,避免直接使用客户端输入作为参数,必要时应进行白名单限制。 说明:对这些函数的参数检查不严会很容易导致远程命令执行漏洞,给系统带来不必要的安全隐患。 实施指导:

$lang = preg_replace('/[^a-zA-Z0-9_]/', '', $_GET['lang']); switch ($lang): case “en” :

include(“en.php”); case “cn”:

include(“cn.php”); default:

include(“cn.php”); endswitch;

建议4.8.4:避免使用preg_replace()函数。当使用/e修饰符,preg_replace会将 replacement 参数当作 PHP 代码执行,如使用不当将容易引入漏洞,建议使用preg_match()替代。

规则4.8.5:明确使用$_GET、$_POST、$_COOKIE而不是$_REQUEST获取用户请求数据,这有助于降低漏洞被成功利用的概率。 5 Web安全配置规范

根据Web应用所选用的Web容器,按照相应的配置规范进行安全配置,当前可供使用的安全配置规范如下: 表3 Web容器安全配置规范列表 规范名称

IIS 安全配置规范

Apache 安全配置规范 Tomcat 安全配置规范 JBoss 安全配置规范 Resin 安全配置规范 WebLogic安全配置规范 6 配套CBB介绍 6.1 WAF CBB ? 提供功能:

1) ? 防范CSRF(跨站请求伪造)攻击 2) ? 防范XSS攻击 3) ? 防范MML注入

4) ? 防范目录遍历/路径遍历

5) ? 防范字符串型的SQL注入攻击(绝大部分的SQL注入为字符串型的) 6) ? 防范空字符注入 7) ? 防范点击劫持

8) ? 防范HTTP会话劫持

9) ? 防范功能可配置(也就是可以通过配置项开启或关闭对应的防范功能) 10) URI白名单功能,允许配置免检的URI。

11) 输入校验:可以为各输入参数配置输入校验规则(正则表达式),在服务器端实现严格的输入校验。 ? 获取方法: WAF CBB

? 支持人员:

何伟祥(00162822) 6.2 验证码CBB ? 提供功能:

实现了“3.2.3验证码”的要求。 ? 获取方法: 验证码CBB ? 支持人员:

何伟祥(00162822) 7 附件

7.1 附件1 Tomcat配置SSL指导

7.2 附件2 Web Service 安全接入开发指导

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

7.4 附件4 口令安全要求 7.5 7.6

7.7 附件5 Web权限管理设计规格说明书


华为Web应用安全开发规范(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初二数学变量间的关系专题提高试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: