基本代码知识
来源:互联网 发布:南京泛成生物 知乎 编辑:程序博客网 时间:2024/06/05 11:39
来自:http://www.cnblogs.com/BenjaminYao/archive/2010/07/09/1774074.html
1. 防止SQL注入
a. 除了过滤单引号“ ' ”,还要过滤数据库中的注释符号“ -- ”。
b. SQL语句中的字符串拼接,是很不靠谱的;实在要拼接,一定要从代码安全的角度多想想。
2. 文件上传漏洞
这是我头一次听说有这么一个漏洞。
现象:
假设我们使用的是IIS6.0及之前版本,当我们上传一个文件名为【熊猫烧香.aspx .jpg】,那么存到服务器上的文件将会是【熊猫烧香.aspx】。
原因:
文件名【熊猫烧香.aspx .jpg】在“.aspx”和“.jpg”之间有一个空格,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:”。据说淘宝曾经因为不知道这个漏洞,而导致上万的用户受到损失。
- 基本代码知识
- 基本代码安全知识
- 基本代码安全知识
- [转帖]基本代码安全知识
- 不到500行代码学完shell基本语法知识
- HelloWorld.java(简单的代码包含了java的基本语法知识)
- linux基本操作知识
- FreeMarker基本语法知识
- 基本数理知识
- 基本的c#知识
- 基本图像知识
- 基本商业知识
- 基本的安全知识
- SEO基本入门知识
- C#基本语法知识
- Java基本入门知识
- 基本图像知识
- 基本OOP知识
- 数据的传递:TCP传输策略
- C# 控制手机号码的输入
- 文本行的读取和排序
- tomcat5.0 目录结构
- LIST
- 基本代码知识
- 使用Catalog或者ArcGIS Manager创建Map Cache(切片)
- jquery AJAX的两注册方式
- jquery贪食蛇游戏
- FSO组件之文件夹操作
- ET199加密方案——文件MD5校验
- SQL 读取循环读取文件夹里面所有指定内容
- 搜索引擎爬虫的基本需求和考核标准
- 哈佛有一个著名的理论