ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:62.94KB ,
资源ID:85434      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/85434.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通用安全编码规范.docx)为本站会员(wj)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通用安全编码规范.docx

1、天翼电子商务有限公司信息技术部【】通用安全编码规范保密申明本文档版权由天翼电子商务有限公司信息技术部所有。未经天翼电子商务有限公司信息技术部书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播目 录1 目的为保障天翼电子商务有限公司(以下简称“翼支付”)支付平台的安全性,构建安全健壮的程序,结合翼支付Web安全遇到的问题以及启明星辰安全研究实验室在Web攻防及代码安全的理论和实践积累,特制定本规范,旨在为翼支付开发团队提供设计及编写应用程序时普遍应该遵循的原则。为充分理解本规范内容,请: 了解应用程序将会受到的威胁; 理解必须考虑的威胁; 在程序设计阶段考虑到这

2、些威胁。2 范围本规范从应用安全开发的角度出发,结合翼支付平台系统的特点和常见的安全问题,给出支付平台应用系统安全开发的规范。供翼支付平台应用系统开发部门内部使用,适用翼支付平台应用系统项目开发的工作。本规范定义了翼支付平台应用系统安全开发和编码安全相关的技术要求。本规范主要提供设计应用程序时应该遵循的一些指南和原则。在应用程序易受攻击的重要环节应采用系统的方法。将重点放在程序部署、输入验证、身份验证和授权、加密及数据敏感度、配置、会话、异常管理以及适当的审核和记录策略上,以确保应用程序的安全可靠性。3 规范概述当今电子商务时代,应用系统为架构设计人员、开发人员提出一系列复杂的安全问题。为应对

3、这些安全问题,须要应用安全思想来构建应用程序。在初始阶段,应该使用可靠的安全体系结构和设计方法,同时要结合考虑应用程序的部署以及企业的安全策略。如果不能做到这一点,将导致在现有基础结构上部署应用程序时,导致危及应用系统的安全性。本规范提供初步的安全体系结构和设计指南,并按照翼支付平台常见的应用程序漏洞类别进行组织。这些指南是应用系统程序安全的重要方面,并且是经常发生错误的领域。4 安全编码的原则 程序只实现你指定的功能 永远不要信任用户的输入,对用户输入数据做有效性检查 必须考虑意外情况并进行处理 不要试图在发现错误之后继续执行 尽可能使用安全函数进行编程 小心、认真、细致地编程5 Web应用

4、程序常见安全问题下面的安全问题是根据应用程序漏洞类别描述的。实际经验表明,如果这些领域的设计存在薄弱环节,将会导致安全漏洞。下表列出了漏洞的类别,每个类别都突出显示了由于设计不当可能会导致的潜在问题。漏洞类别由于设计不当而引起的潜在问题输入验证嵌入到查询字符串、表单字段、cookie和HTTP头中的恶意字符串的攻击。这些攻击包括命令执行、跨站点脚本(XSS)、SQL输入和缓冲区溢出攻击。身份验证标识欺骗、密码破解、特权提升和未经授权的访问。授权访问保密数据或受限数据、篡改数据以及执行未经授权的操作。配置管理对管理界面进行未经授权的访问、具有更新配置数据的能力以及对用户账户和账户配置文件进行未经

5、授权的访问。敏感数据泄漏保密信息以及篡改数据。会话管理捕捉会话标识符,从而导致会话劫持及标识欺骗。加密访问保密数据或者账户凭据,或者二者均能访问。参数操作路径遍历攻击、命令执行以及绕过访问控制机制,从而导致信息泄漏、特权提升和拒绝服务。异常管理拒绝服务和敏感的系统级详细信息的泄漏。审核和记录不能发现入侵迹象、不能验证用户操作,以及在诊断问题时出现困难。5.1 跨站脚本攻击5.1.1 定义什么是跨站脚本攻击:跨站脚本攻击(通常简写为XSS)是最普通的web应用安全漏洞,当应用程序在发送给浏览器的页面中包含用户提供的数据,没有经过严格验证或转义,那么攻击者就有可能利用网站程序对用户输入过滤不严,输

6、入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。5.1.2 危害 敏感数据被获取(cookie盗取) 网络钓鱼 获取web用户的网页内容 Session Riding(CSRF攻击) 获取用户的键盘击键数据 Web僵尸 XSS蠕虫攻击者能在受害者浏览器中执行脚本以劫持用户会话、迫害网站、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等等。入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失

7、。如这句简单的javascript脚本就能轻易获取用户信息:alert(document.cookie),它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍作分析便获取了用户的敏感信息。跨站脚本攻击的危险,在如今WEB安全越来越得到重视,他的危险性也越来越大。有效防止跨站脚本攻击,是WEB程序是否安全的一个重要标准。5.1.3 解决方法主要防御方式5.1.3.1 验证输入验证输入很简单,检查每个输入的有效性。这可能意味着很多东西,但在典型的和简单的情况下,这意味着检查输入类型和数据的长度。例如,如果你是从一个文本框接受一个标准的邮政编码,你会知道,唯一

8、有效的类型是一个数字(0-9),而长度应该是6,不能多也不能少。并非所有的案例都如此简答,但很多是相似的。下图显示验证输入的架构。这里的关键是,一切都进行验证,所有的输入,这并不来自于应用程序(包括用户输入,请求头,Cookie,数据库数据)。5.1.3.2 编码输出对于不支持HTML代码的地方,可用编码输出。如:Server.UrlEncode等方法编码输出。优点:安全可靠。缺点:不支持HTML代码。对于验证输入的另一面就是编码输出。编码输出,是用来确保字符被视为数据,而不是作为HTML元字符被浏览器解析。这些技术定义一些特殊的“转义”字符。没有正确转义的数据它仍然会在浏览器中正确解析。编码

9、输出只是让浏览器知道数据是不是要被解析,达到攻击无法实现的目的。需要编码的部分:HTML实体HTML属性JavascriptCSSURL5.1.3.3 辅助防御方式防御手段一:iframe security=“restricted”保护级别:描述:通过设置iframe security=“restricted”,能有效防止iframe类的攻击(对IE有效)。优点:有效防止iframe的攻击。防御手段二:HttpOnly保护级别:描述:设置Cookie的HttpOnly属性,有效地防止Cookie通过脚本泄密(IE6 SP1以上、Firefox3)。优点:有效保护了用户的Cookie信息。应用举

10、例:系统中,所有登录验证的地方,验证成功后设置authCookie.HttpOnly=true,设置Cookie的HttpOnly属性,这些都应用于用户登录成功的地方。防御手段三:字符过滤保护级别:描述:通过函数进行过滤,能有效防止常见跨站脚本的跨站攻击。主要过滤常见恶意脚本代码,如:OnX事件代码、Javascript、Vbscript和Style中的expression、behaviour、script、position等。但过滤可能存在不完全的情况。建立自己的XSS攻击库,方便测试和收集新的攻击方式,使过滤函数更加完善。优点:支持HTML,有效防止大部分攻击代码。缺点:可能存在过滤不全的

11、情况。5.2 SQL注入5.2.1 定义什么是SQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。简单来说,注入往往是应用程序缺少对输入进行安全性检查所引起的,攻击者把一些包含指令的数据发送给解释器,解释器会把收到的数据转换成指令执行,注入漏洞十分普遍,通常能在SQL查询、程序参数等中出现。下图为SQL攻击原理图:5.2.2 危害注入能导致数据丢失或数据破坏、缺乏可审计性或是拒绝服务。注入漏洞有时甚至能导致完全接管主机,主要危害有以下几点: 绕过防火

12、墙进行攻击 绕过web应用程序的验证过程 非法越权操作数据库内容 随意篡改网页内容 添加系统账户或数据库账户 上传和下载非法文件 本地溢出并获取系统最高权限 安装木马后门/僵尸网络5.2.3 解决方法SQL注入实例:String sqlString=“SELECT * FROM users WHERE fullname=”+form.getFullName()+”AND password=” +form.getPassword()+ “”;正常:username=tony,password=123456SELECT * FROM users WHERE username=tony AND pa

13、ssword=123456攻击:username=tony,password= OR 1=1SELECT *FROM users WHERE username=tony AND password= OR 1=1参数化查询预处理对于JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement是无效的,这是因为PrepareStatement不允许在不同的插入时间改变查询的逻辑结构。如验证用户是否存在的SQL语句为:select count(*) from usertable where name=用户名 and pswd=密码如果在用户名字段中输入or 1=1 o

14、r 1=1或是在密码字段中输入1 or 1=1将绕过验证,但这种手段只对Statement有效,对PreparedStatement无效,PreparedStatement相对Statement有以下优点: 防注入攻击 多次运行速度快 防止数据库缓冲区溢出 代码的可读性可维护性好5.3 恶意脚本执行5.3.1 定义恶意文件执行是一种能够威胁任何网站形式的漏洞,只要攻击者在具有引入(include)功能程式的参数中修改参数内容,WEB服务器便会引入恶意程序内容从而收到恶意文件执行漏洞攻击。5.3.2 危害攻击者可利用恶意文件执行漏洞进行攻击取得WEB服务器控制权,进行不法利益或获取经济利益。5.3.3 解决方法 验证输入,验证上传文件名 检查上传文件的大小5.4 文件上传漏洞5.4.1 定义Web应用程序在处理用户上传的文件时,没有判断文件的扩

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1