开发代码安全标准规范防SQL注入和XSS跨站攻击代码编写标准规范.docVIP

开发代码安全标准规范防SQL注入和XSS跨站攻击代码编写标准规范.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

开发代码安全规范

防SQL注入和XSS跨站袭击代码编写规范

修订历史

版本

发布日期

作者

审核者

改版记录

1.0

-12-01

正式版

目录

TOC\o1-3\h\z\u概述 2

合用范畴 2

一、第一类漏洞类型-SQL注入(SQLInjection)及规范 2

1.1名词解释: 2

1.2典型案例阐明: 2

1.3代码实例分析: 6

1.4防止SQL注入袭击代码安全规范总结: 7

二、第二类漏洞类型-XSS跨站脚本袭击及规范 8

2.1名词解释: 8

2.2典型案例阐明: 8

2.3防止XSS跨站脚本袭击代码安全规范总结: 9

三、安全操作实践 10

概述

在技术高速发展今天,Web应用被广泛使用,随着而来是各种安全隐患,重要是编程人员安全意识较淡薄,缺少安全编程经验,上线前安全检测不全面。因而,给心怀不轨之人以机会,对公司和个人财产安全导致威胁。本规范但愿给编程人员一种较清晰安全概念,在代码编写时提高警惕。

合用范畴

xx集团及其分子公司业务系统所有开发人员,涉及系统外包第三方开发人员。

一、第一类漏洞类型-SQL注入(SQLInjection)及规范

1.1名词解释:

SQL注入袭击:通过把SQL命令插入到Web表单递交或输入域名或页面祈求查询字符串,最后达到欺骗服务器执行恶意SQL命令。

详细来说,它是运用既有应用程序,将(恶意)SQL命令注入到后台数据库引擎执行能力,它可以通过在Web表单中输入(恶意)SQL语句得到一种存在安全漏洞网站上数据库,而不是按照设计者意图去执行SQL语句。

1.2典型案例阐明:

例1:顾客登录界面及原则输入格式:

Web与数据库连接调用方式:

通过“‘空’or’1’=’1’”此类非法输入,进行恶意SQL注入

以上例子是开发人员直接把顾客输入当作可信某些直接和SQL语句拼接导致SQL漏洞。

例2:虽然开发人员运用PHP内置过滤函数后,还是有也许浮现问题:

调用PHP函数可以改进查询和调用,并限制输入类型,但依然无法避免注入:

运用GBK转译编码方式仍旧可以执行‘空’or‘1=1’类注入语句

因而,使用PHP函数规范输入时,还必要注意字符集选取问题:

1.3代码实例分析:

Web应用存在着各种各样SQL注入漏洞,下面以生产实例进行分析。

实例1:参数传递SQL语句片断

数据来源:某线上业务被拦截数据

数据日期:-10-21

数据内容:HTTP祈求URLPATH

/WRIROOT?wri=671DBName=devpagenum=15page=1SortValue=%20order%20by%20FeeStamp%20%20DescXXXXX=WWW

拦截解决截图:

案例分析:

在这个案例中,URL参数SortValue值为orderbyFeeStampDesc,这是一种典型SQL注入点。对于业务需求来说,传递orderbyFeeStampDesc也许以便了后端解决,但是如果被恶意袭击,那么可以传不符合业务预期参数,对后端数据库导致损害。如:

orderbyFeeStampDescunionselectusername,password,1,2,3fromusers

*注:此处假设存在users数据表,并且有username和password列数据。

实例2:参数传递完整SQL语句

数据来源:某线上业务被拦截数据

数据日期:-10-21

数据内容:HTTP祈求BODY

拦截解决截图:

案例分析:在这个案例中,HTTPBody是常用application/x-www-form-urlencoded类型。其中DBName参数值是dev,sql参数值是:

selecta.payoutid,a.value,b.basket_id,b.inserttime,a.suppliername,a.currentrankfromtabpayout_sheetaleftjoinTabPayOut_Basketbona.payoutid=b.payoutidwherea.payoutidin()

这里开发人员为了业务便利性,直接从客户端将完整SQL语句通过HTTP祈求发送给后端。这也是非常典型SQL注入点,对于恶意袭击黑客来说,可以构造恶意SQL语句祈求给后端,从而达到恶意获取数据、修改数据、毁坏数据目,甚至如果权限设立不合理话,恶意袭击黑客也许从该注入点获取服务器管理权限。

1.4SQL注入危害:

敏感数据被获取(cookie盗取)

网络钓鱼

获取web顾客网页内容

文档评论(0)

180****1080 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档