文档介绍:.
1 / 60
天翼电子商务
信息技术部
[]通用安全编码规范
<文档编号:BESTPAY-DMAQ-05>
< >
保密申明
本文档版权由天翼电子商务信息技术部所有。未经天翼电子商务信息技术部书面许可范概述
当今电子商务时代,应用系统为架构设计人员、开发人员提出一系列复杂的安全问题。为应对这些安全问题,须要应用安全思想来构建应用程序。
.
5 / 60
在初始阶段,应该使用可靠的安全体系结构和设计方法,同时要结合考虑应用程序的部署以及企业的安全策略。如果不能做到这一点,将导致在现有基础结构上部署应用程序时,导致危及应用系统的安全性。
本规范提供初步的安全体系结构和设计指南,并按照翼支付平台常见的应用程序漏洞类别进行组织。这些指南是应用系统程序安全的重要方面,并且是经常发生错误的领域。
安全编码的原则
程序只实现你指定的功能
永远不要信任用户的输入,对用户输入数据做有效性检查
必须考虑意外情况并进行处理
不要试图在发现错误之后继续执行
尽可能使用安全函数进行编程
小心、认真、细致地编程
Web应用程序常见安全问题
下面的安全问题是根据应用程序漏洞类别描述的。实际经验表明,如果这些领域的设计存在薄弱环节,将会导致安全漏洞。下表列出了漏洞的类别,每个类别都突出显示了由于设计不当可能会导致的潜在问题。
漏洞类别
由于设计不当而引起的潜在问题
输入验证
嵌入到查询字符串、表单字段、cookie和头中的恶意字符串的攻击。这些攻击包括命令执行、跨站点脚本〔XSS、SQL输入和缓冲区溢出攻击。
.
6 / 60
身份验证
标识欺骗、***、特权提升和未经授权的访问。
授权
访问保密数据或受限数据、篡改数据以及执行未经授权的操作。
配置管理
对管理界面进行未经授权的访问、具有更新配置数据的能力以及对用户账户和账户配置文件进行未经授权的访问。
敏感数据
泄漏保密信息以及篡改数据。
会话管理
捕捉会话标识符,从而导致会话劫持及标识欺骗。
加密
访问保密数据或者账户凭据,或者二者均能访问。
参数操作
路径遍历攻击、命令执行以及绕过访问控制机制,从而导致信息泄漏、特权提升和拒绝服务。
异常管理
拒绝服务和敏感的系统级详细信息的泄漏。
审核和记录
不能发现入侵迹象、不能验证用户操作,以及在诊断问题时出现困难。
跨站脚本攻击
定义
什么是跨站脚本攻击:
跨站脚本攻击〔通常简写为XSS是最普通的web应用安全漏洞,当应用程序在发送给浏览器的页面中包含用户提供的数据,没有经过严格验证或转义,那么攻击者就有可能利用网站程序对用户输入过滤不严,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
.
7 / 60
危害
敏感数据被获取〔cookie盗取
网络钓鱼
获取web用户的网页内容
Session Riding〔CSRF攻击
获取用户的键盘击键数据
Web僵尸
XSS蠕虫
攻击者能在受害者浏览器中执行脚本以劫持用户会话、迫害网站、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等等。
入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息〔Cookie,由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。如这句简单的javascript脚本就能轻易获取用户信息:alert<>,它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍作分析便获取了用户的敏感信息。
跨站脚本攻击的危险,在如今WEB安全越来越得到重视,他的危险性也越来越大。
有效防止跨站脚本攻击,是WEB程序是否安全的一个重要标准。
解决方法
主要防御方式
.
8 / 60
验证输入
验证输入很简单,检查每个输入的有效性。这可能意味着很多东西,但在典型的和简单的情况下,这意味着检查输入类型和数据的长度。例如,如果你是从一个文本框接受一个标准的邮政编码,你会知道,唯一有效的类型是一个数字〔0-9,而长度应该是6,不能多也不能少。并非所有的案例都如此简答,但很多是相似的。
下图显示验证输入的架构。这里的关键是,一切都进行验证,所有的输入,这并不来自于应用程序〔包括用户输入,请求头,Cookie,数据库数据……。
编码输出
对于不支持HTML代码的地方,可用编码输出。如:。
优点:安全可靠。
缺点:不支持HTML代码。
对于验证输入的另一面就是编码输出。编码输出,是用来确保字符被视