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

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

ID:47622895

大小:1.09 MB

页数:11页

时间:2020-01-31

开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范_第1页
开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范_第2页
开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范_第3页
开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范_第4页
开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范_第5页
资源描述:

《开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编号:BFG【2015】I:第021-1号开发代码安全规范防SQL注入和XSS跨站攻击代码编写规范修订历史版本发布日期作者审核者改版记录1.02015-12-01正式版目录概述2适用范围2一、第一类漏洞类型-SQL注入(SQLINJECTION)及规范2第11页共11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号1.1名词解释:21.2经典案例说明:21.3代码实例分析:61.4防止SQL注入攻击的代码安全规范总结:7二、第二类漏洞类型-XSS跨站脚本攻击及规范82.1名词解释:82.

2、2经典案例说明:82.3防止XSS跨站脚本攻击的代码安全规范总结:9三、安全操作实践10概述在技术高速发展的今天,Web应用被广泛使用,伴随而来的是各种安全隐患,主要是编程人员的安全意识较淡薄,缺乏安全编程经验,上线前安全检测不全面。因此,给心怀不轨之人以机会,对公司和个人财产安全造成威胁。本规范希望给编程人员一个较清晰的安全概念,在代码编写时提高警惕。第11页共11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号适用范围xx集团及其分子公司业务系统的所有开发人员,包括系统外包的第三方开

3、发人员。一、第一类漏洞类型-SQL注入(SQLInjection)及规范1.1名词解释:SQL注入攻击:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。1.2经典案例说明:例1:用户登录界面及标准输入格式:Web与数据库连接调用方式:第11页共11页集团IT部版本:V

4、1.0创建日期:20151201编号:BFG【2015】I:第021-1号通过“‘空’or’1’=’1’”这类非法输入,进行恶意SQL注入以上例子是开发人员直接把用户输入当作可信部分直接和SQL语句拼接造成的SQL漏洞。例2:即使开发人员利用PHP内置的过滤函数后,还是有可能出现问题:第11页共11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号调用PHP函数可以改善查询和调用,并限制输入类型,但仍然无法避免注入:利用GBK转译编码方式依旧可以执行‘空’or‘1=1’类注入语句第11页共

5、11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号因此,使用PHP函数规范输入时,还必须注意字符集选择问题:1.3代码实例分析:Web应用存在着多种多样的SQL注入漏洞,下面以生产实例进行分析。实例1:参数传递SQL语句片断数据来源:某线上业务被拦截数据数据日期:2015-10-21数据内容:HTTP请求的URLPATH/WRIROOT?wri=671&DBName=dev&pagenum=15&page=1&SortValue=%20order%20by%20FeeStamp%20%

6、20Desc&XXXXX=WWW拦截处理截图:第11页共11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号案例分析:在这个案例中,URL参数SortValue的值为'orderbyFeeStampDesc',这是一个典型的SQL注入点。对于业务需求来说,传递orderbyFeeStampDesc可能方便了后端的处理,但是如果被恶意攻击,那么可以传不符合业务预期的参数,对后端数据库造成损害。如:orderbyFeeStampDescunionselectusername,password

7、,1,2,3fromusers*注:此处假设存在users数据表,并且有username和password的列数据。实例2:参数传递完整SQL语句数据来源:某线上业务被拦截数据数据日期:2015-10-21数据内容:HTTP请求的BODY拦截处理截图:案例分析:在这个案例中,HTTPBody是常见的application/x-www-form-urlencoded类型。其中DBName参数的值是dev,sql参数的值是:第11页共11页集团IT部版本:V1.0创建日期:20151201编号:BFG【2015】I:第021-1号sel

8、ecta.payoutid,a.value,b.basket_id,b.inserttime,a.suppliername,a.currentrankfromtabpayout_sheetaleftjoinTabPayOut_Bask

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。