文档章节

基本代码的安全知识

刀龙郎456
 刀龙郎456
发布于 2017/09/07 18:08
字数 757
阅读 11
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

1.       防止SQL注入

a.       除了过滤单引号“ ' ”,还要过滤数据库中的注释符号“ -- ”。

b.       SQL语句中的字符串拼接,是很不靠谱的;实在要拼接,一定要从代码安全的角度多想想。

 

2.       文件上传漏洞

这是我头一次听说有这么一个漏洞。

现象:

假设我们使用的是IIS6.0及之前版本,当我们上传一个文件名为【熊猫烧香.aspx .jpg】,那么存到服务器上的文件将会是【熊猫烧香.aspx】。

 

原因:

文件名【熊猫烧香.aspx .jpg】在“.aspx”和“.jpg”之间有一个蛮像空格的符号,其实是通过16进制编码器修改出来的“ \0 ”,IIS6.0及之前版本对于上传文件名的解析是从左向右的,如果在解析时遇到空格,就认为这个文件名已经结束,于是存在服务器上的文件就是【熊猫烧香.aspx】。

 

解决方案:

我们一般都会对上传文件的后缀名进行检查,但是IIS的漏洞绕过了我们的检查,于是上传文件重命名就是一个不错的解决办法。我们把每次上传文件的后缀拿出来,取个新名字,再加上原后缀,这个问题就可解决。

 

我在之前的开发,有过上传文件的程序,碰巧我对每个上传文件都进行了重命名,但我并不知道有这个漏洞,运气啊运气…

另外补充两点:

a.       如果文件名中包含特殊字符,比如【熊猫烧香又来了.aspx;不是吧.jpg】这是一个文件名,中间包含分号“ ; ”,IIS6.0及之前版本在上传文件时正常,但是在解析时分号“ ; ”之后的文件名都不认。

b.       Apache服务器对上传文件的检查是从右向左的。

 

3.       Cookie欺骗

这个应该很简单,大家都知道从哪里可以拿到cookie,怎么伪装cookie,怎么把一台机器上的cookie移到另外一台… Cookie很常用,特别在跨域访问时,我们常常会把用户名加密以后放在客户端。检查用户是否登录,就会去查看这个cookie,那么请别忘了在检查时加上客户端ip一起校验,在一定程度上可以阻止cookie欺骗。

 

4.       XSS跨站脚本攻击

 对于这种攻击,我们要对左右尖括号“<、>”、分号“ ; ”、单引号“ ' ”进行过滤。我们对于用户输入或者获取来自地址栏的参数值(Request.QueryString["XXX"]),不应支持HTML编码。处理的方法有很多,"HttpUtility.UrlEncode”就是一种。

 

5.       其他漏洞

 标签<body>有个属性"onload”,它会把属性中的值直接解析为javascript脚本,而不需要"<script></script>”或"javascript:”。据说淘宝曾经因为不知道这个漏洞,而导致上万的用户受到损失。

(转载自博客园)

本文转载自:http://www.cnblogs.com/BenjaminYao/archive/2010/07/09/1774074.html

刀龙郎456
粉丝 0
博文 9
码字总数 5250
作品 0
合肥
私信 提问
加载中

评论(0)

2019下半年软件设计师考试大纲

来源:希赛网 考试范围 考试科目 1:计算机与软件工程知识(上午题)   1. 计算机科学基础知识     1.1 数制及其转换       二进制、八进制、十进制和十六进制等常用数制及其相互...

osc_sw4wag84
2019/10/29
3
0
计算机类教学质量国家标准(含信息安全专业)

计算机类教学质量国家标准(含信息安全专业) 目录 计算机类教学质量国家标准(含信息安全专业) 附录计算机类专业知识体系和核心课程体系建议 提高人才培养质量,必须牢固确立人才培养在高校...

娄老师
2018/09/29
0
0
初入计算机专业,学习c语言的第一周作业问答

##1. 你对软件工程专业或者计算机科学与技术专业了解是怎样? 一开始我所了解的计算机就是一台硬件加系统软件的机器,拥有强大的计算能力并在IT、工程和计算等多方面发挥重要作用,而计算机专...

osc_b7lz7dji
2019/09/24
3
0
实践《TCP/IP网络编程》PDF+代码+《图解TCP/IP》PDF+对比分析

我认为,在初学编程阶段,任何让代码更健壮的部分都是对初学者的一个藩篱。只有只剩骨架的代码,才能明白编程的步骤 和结构。 学习计算机网络、TCP/IP网络编程,建议学习《TCP/IP网络编程》,...

osc_mwqvsfzo
2019/07/17
7
0
网络工程师考试说明

1.考试要求:   (1)熟悉计算机系统的基础知识;   (2)熟悉网络操作系统的基础知识;   (3)理解计算机应用系统的设计和开发方法;   (4)熟悉数据通信的基础知识;   (5)...

技术小甜
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【视频】工业互联网在线交流现状、发展、怎么建和规划

PPT介绍目录: 工业互联网的现状 平台介绍 技术路线 人力资源 现实问题 成本中心 工业互联网的发展 两大推动引擎 用户需求的改变 片面与极端 由点到面,点面结合 突破点 现实路径 落脚点 工业...

osc_3ubrwgtm
44分钟前
51
0
单臂-Etrunk-三层交换-路由-DHCP中继-NAT-HTTP服务 实验题

单臂-Etrunk-三层交换-路由-DHCP中继-NAT-HTTP服务 实验题 实验环境 需求描述 pc1、pc2、pc3、pc4可以ping通 虚拟机可以打开网页 了解dhcp中继 了解网络地址转换技术NAT 了解access口跟trunk...

osc_h7zc4umy
45分钟前
24
0
医院防勒索病毒灾备解决方案

医院成勒索病毒重灾区 上述某妇幼保健院并非是个例。近年来,针对医院等医疗系统的网络安全风险一直处于活跃状态且呈现持续上升的态势。医院的业务系统及医学记录、病患资料、预约信息等大量...

osc_gh0ost1g
46分钟前
18
0
2招带你快速获取响应头与发送头

今天带大家用两招快速获取响应头以及发送头。 1、获取请求头 想要获取请求头,就需要会用抓包工具,目前比较普遍的就是fiddler。大家可以在百度搜索下载。首先我们打开fiddler 你会发现左侧这...

osc_3g4j2ghj
48分钟前
20
0
Python Django 数据库基础

对数据库的操作可以直接使用SQL语句,也可以使用图形界面工具。这些一般是DBA(数据库管理人员)做的。开发人员是使用代码链接数据库,对数据库进行操作。 下面进行Python Django框架ORM创建...

osc_itgved4p
50分钟前
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部