通用安全编码规范_第1页
通用安全编码规范_第2页
通用安全编码规范_第3页
通用安全编码规范_第4页
通用安全编码规范_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通用安全代码规范天一电子商务有限公司信息技术部通用安全规范文件编号:BESTPAY-DMAQ-051.0版保密声明本文件的版权归天一电子商务有限公司信息技术部所有,未经天一电子商务有限公司信息技术部书面许可,任何单位和个人不得以任何形式摘录或复制本文件的部分或全部,并以任何形式传播。内容1目标42范围43规格概述44安全编码原则55WEB应用程序的常见安全问题55.1跨站点脚本攻击65.1.1定义65.1.2危险决议75.2SQL注射95.2.1定义9伤害10决议105.3恶意脚本执行115.3.1定义11危险125.3.3决议125.4文件上传漏洞125.4.1定义12危险125.4.3方案125.5安全通道13不用于传输敏感信息5.5.1定义13伤害135.5.3方案135.6信息泄漏和错误处理不当135.6.1定义13危险145.6.3方案145.7跨站点请求伪造155.7.1定义155.7.2危险5.7.3代码示例155.7.4方案165.8访问控制缺陷175.8.1提升权威175.8.2不安全的直接物体参考185.9不安全加密205.9.1定义205.9.2弱加密示例215.9.3方案215.10未能限制网址访问215.10.1定义215.10.2方案225.11应急管理225 . 11 . 1仅查看http标志225 . 11 . 2查看安全标志235 . 11 . 3服务期限255.12记录和监控266网络应用安全编码点266.1SOCKET网络安全编程要求266.2安全认证要求276.2.1图片验证码276.2.2短信验证码286.3加密方法和强度要求296.4输入验证316.4.1什么是输入316.4.2如何处理输入376.5输出代码426.5.1输出代码类型426.5.2输出编码的必要性426.5.3安全输出编码模式427翼支付通用网络框架安全性447.1 Struts 2:动作字段没有验证器(动作字段没有验证器)447.1.1定义447.1.2危险447.2说明2:重复操作字段验证器457.2.1定义457.2.2危险457.2.3示例457.3说明2:重复的验证文件)457.3.1定义457.3.2危险467.4测试2:重复验证器)467.4.1定义467.4.2危险467.5支柱2:未声明的验证器)467.5.1定义467.5.2危险477.5.3示例477.6支柱2:未经验证的动作477.6.1定义477.6.2危险477.7结构2:无操作的验证文件477.7.1定义7.8支柱2:没有动作字段的验证器)487.8.1定义487.9 Spring MVC的不良实践:请求参数绑定持久对象487.9.1定义487.9.2危险487.9.3示例:488附录498.1安全测试_检查列表498.2代码安全审计检查表49目的为确保天一电子商务有限公司支付平台(以下简称“永支付”)的安全,构建一个安全、健壮的程序,结合永支付网络安全中遇到的问题,结合祁鸣陈星安全研究实验室在网络攻防和代码安全方面的理论和实践积累,特制定本规范,旨在为永支付开发团队提供设计和编写应用程序时应普遍遵循的原则。要完全理解本规范的内容,请:了解应用程序面临的威胁;了解必须考虑的威胁;在编程阶段考虑这些威胁。2范围本规范从应用安全开发的角度出发,结合了wing支付平台系统的特点和常见的安全问题,给出了支付平台应用系统安全开发的规范。由永安支付平台应用系统开发部门内部使用,适用于永安支付平台应用系统项目开发工作。本规范定义了与wing支付平台应用系统的安全开发和编码安全相关的技术要求。本规范主要提供了设计应用程序时应该遵循的一些准则和原则。在应用程序容易受到攻击的重要环节,应该采用系统化的方法。重点关注程序部署、输入验证、验证和授权、加密和数据敏感性、配置、会话、异常管理以及适当的审核和记录策略,以确保应用程序的安全性和可靠性。3规格概述在当今的电子商务时代,应用系统给架构设计者和开发者带来了一系列复杂的安全问题。为了解决这些安全问题,有必要应用安全思想来构建应用程序。在初始阶段,应该使用可靠的安全体系结构和设计方法,同时应该考虑应用程序的部署和企业的安全策略。如果做不到这一点,将导致在现有基础设施上部署应用程序,并危及应用系统的安全。本规范提供了初步的安全体系结构和设计指南,并根据wing支付平台的常见应用程序漏洞类别进行组织。这些准则是应用系统程序安全的重要方面,也是经常发生错误的领域。4安全编码原则该程序只实现您指定的功能。不要相信用户的输入,检查用户输入数据的有效性。事故必须考虑和处理。发现错误后,不要尝试继续执行。尽可能使用安全功能进行编程仔细、仔细、细致的编程网络应用程序的5个常见安全问题应用程序漏洞类别描述了以下安全问题。实践经验表明,如果这些区域的设计存在薄弱环节,就会导致安全漏洞。下表列出了漏洞的类别,每个类别都强调了可能由不正确的设计导致的潜在问题。漏洞类别设计不当导致的潜在问题输入验证对嵌入在查询字符串、表单域、cookie和HTTP头中的恶意字符串的攻击。这些攻击包括命令执行、跨站点脚本(XSS)、SQL输入和缓冲区溢出攻击。证明身份欺骗、密码破解、特权提升和未经授权的访问。批准访问机密或受限数据、篡改数据以及执行未经授权的操作。结构管理对管理界面的未授权访问、更新配置数据的能力,以及对用户帐户和帐户配置文件的未授权访问。敏感数据泄露机密信息和篡改数据。会话管理捕获会话标识符,导致会话劫持和身份欺骗。加密访问机密数据或帐户凭据,或者两者都访问。参数运算路径遍历攻击、命令执行和绕过访问控制机制会导致信息泄露、特权提升和拒绝服务。异常管理拒绝服务和泄露敏感的系统级细节。审计和记录没有入侵的迹象,没有用户操作的验证,以及诊断问题的困难。5.1跨站点脚本攻击5.1.1定义什么是跨站点脚本攻击:跨站点脚本攻击(通常缩写为XSS)是网络应用程序中最常见的安全漏洞。当应用程序在发送给浏览器的页面中包含用户提供的数据而没有经过严格验证或转义时,攻击者可能会使用网站程序来过滤用户输入,并输入可在页面上显示的HTML代码来影响其他用户,从而窃取用户数据,利用用户身份执行某些操作,或者对访问者进行病毒攻击。5.1.2危险获取的敏感数据(窃取cookie)网络钓鱼获取网络用户的网页内容会话骑行(CSRF攻击)获取用户的键盘按键数据网络僵尸XSS蠕虫攻击者可以在受害者浏览器中执行脚本来劫持用户会话、迫害网站、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等。入侵者通过技术手段,如记录论坛保存的用户信息(Cookie),将恶意的HTML代码插入某个页面。由于Cookie保存了完整的用户名和密码信息,用户将遭受安全损失。例如,这个简单的javascript脚本可以轻松获得用户信息:alert(document.cookie),它将弹出一个包含用户信息的消息框。入侵者可以使用脚本将用户信息发送到他们自己的记录页面,经过一点分析,他们可以获得用户的敏感信息。在当今的网络安全中,跨站点脚本攻击的危险性越来越受到关注,其危险性也越来越大。有效防止跨站点脚本攻击是网络程序安全的重要标准。5.1.3分辨率主要防御方法验证输入验证输入是否简单,并检查每个输入的有效性。这可能意味着很多,但在典型和简单的情况下,这意味着检查输入类型和数据长度。例如,如果您接受文本框中的标准邮政编码,您将知道唯一有效的类型是一个数字(0-9),长度应该是6,不能多或少。并非所有的案例都如此简单,但许多都是相似的。下图显示了验证输入的模式。这里的关键是一切都经过验证,并且所有输入都不是来自应用程序(包括用户输入、请求头、Cookie、数据库数据等)。)。编码输出对于不支持HTML代码的地方,可以使用编码输出。例如,服务器。UrlEncode和其他方法对输出进行编码。优点:安全可靠。缺点:不支持HTML代码。验证输入的另一面是编码输出。编码输出用于确保字符被视为数据,而不是被浏览器解析为HTML元字符。这些技术定义了一些特殊的“转义”字符。如果没有正确转义的数据,它仍然可以在浏览器中正确解析。编码输出只让浏览器知道数据是否被解析,从而达到攻击无法达到的目的。要编码的零件:HTML实体HTML属性java描述语言钢性铸铁网址的辅助防御模式防御手段1: iframesecurity=restricted 保护级别:描述:通过设置iframe security=restricted ,可以有效防止iframe类的攻击(对IE有效)。优点:有效防止iframe攻击。防御2: HttpOnly保护级别:描述:设置cookie的HttpOnly属性,以有效防止cookie通过脚本泄露(IE6 SP1和更高版本,火狐3)。优点:有效保护用户的Cookie信息。应用示例:在系统中,所有登录认证的地方都设置了授权Cookie。HttpOnly=true,并在成功验证后设置Cookie的HttpOnly属性,这些属性都应用于用户成功登录的地方。防御措施3:角色过滤保护级别:描述:通过函数过滤可以有效防止常见跨站点脚本的跨站点攻击。主要过滤常见的恶意脚本代码,如:OnX事件代码、表达式、行为、脚本、位置等。在Javascript、Vbscript和Style中。但是,过滤可能不完整。建立自己的XSS攻击库,方便测试和收集新的攻击方法,并使过滤功能更加完善。优点:支持超文本标记语言,有效防止大多数攻击代码。缺点:可能存在不完整的过滤。5.2 SQL注入5.2.1定义什么是SQL注入所谓的SQL注入就是将SQL命令插入到Web表单提交的查询字符串中,或者输入域名或页面请求,最后欺骗服务器执行恶意的SQL命令。通过提交参数来构造巧妙的SQL语句,可以成功地获得所需的数据。简而言之,注入通常是由于对应用程序的输入缺乏安全检查而导致的。攻击者将一些包含指令的数据发送给解释器,解释器将接收到的数据转换为执行指令。注入漏洞非常常见,通常会出现在SQL查询、程序参数等中。下图是SQL攻击的示意图:5.2.2危险注入可能导致数据丢失或数据破坏、缺乏可审计性或拒绝服务。注入漏洞有时甚至会导致完全接管主机,具有以下主要危害:绕过防火墙进行攻击绕过web应用程序的身份验证过程非法未经授权操作数据库内容随意篡改网页内容添加系统帐户或数据库帐户上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论