文档章节

基本代码的安全知识

刀龙郎456
 刀龙郎456
发布于 2017/09/07 18:08
字数 757
阅读 6
收藏 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
合肥
通过信息图表获取网络安全基本知识

随着每一次网络安全方面的事件发生,网络安全引起新闻界和消费者关注,但许多人和公司仍然没有得到网络安全方面的基本知识。总部位于英国无线网络安全专家 - Exigent Networks制作了信息图表...

oschina
2014/11/01
1K
6
非可变性(Immutability)和对象引用(Object reference)

一些比较核心的Java问题经常会用来考验面试者的Java基本知识功底。这篇文章列出来了一些在我的书里面没有的面试题,通过这些面试题读者也可以梳理一下Java基础知识点。 Q1.下面的代码片段会输...

markGao
2014/03/10
0
0
网络工程师考试说明

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

技术小甜
2017/11/09
0
0
福利第二波~《Android应用安全防护和逆向分析》

  都说年底有福利,没错,这是第二波~第一期看这里据说年底都会有福利   经历一年多的改稿写稿终于完成这本著作:《Android应用安全防护和逆向分析》;感谢医生给我个机会在这里给大家介...

Android群英传
2017/12/26
0
0
python爬虫之cookie方式自动登录巴比特网

最近打算抓取公司内部PPT模板库中的PPT,发现被各种安全屏蔽。因为好久没写程序了,因此写几个例子回顾下基本的爬虫知识 目标网址巴比特的登录页面 在登录的时候开启fiddler抓包: 图中尖头标...

youngbit007
2017/12/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
4
0
现场看路演了!

HiBlock
昨天
12
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
9
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
17
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部