文档章节

基本代码的安全知识

刀龙郎456
 刀龙郎456
发布于 2017/09/07 18:08
字数 757
阅读 7
收藏 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
2K
6
网络工程师考试说明

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

技术小甜
2017/11/09
0
0
非可变性(Immutability)和对象引用(Object reference)

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

markGao
2014/03/10
0
0
《图解TCP/IP : 第5版》.PDF

简介 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。 书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP...

jackmk
2017/11/28
0
0
iOS开发Swift篇(02) NSThread线程相关简单说明

iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明   1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明。   2)该文仅仅简单讲解NSThread在swift语境...

文顶顶水水
2016/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新技术不断涌现,下一代云计算的突破口在哪里?

这是一个IT技术飞速发展的时代,在硬件基础设施的不断升级以及虚拟化网络等技术的日益成熟下,云厂商也正面临着各种新技术带来的巨大挑战。从数据中心的基础建设到云平台的系统构建再到产品底...

UCloudTech
16分钟前
1
0
走进阿里云物联网

课程介绍: 阿里云IoT,致力于实现万物互联的美好世界,为生态合作伙伴提供基于云边端一体化、人工智能、安全的物联网基础平台和内容服务能力平台,通过该平台高效连接、管理设备的同时,开放...

mcy0425
23分钟前
1
0
Kylin2.5.0环境搭建及操作记录

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的H...

PeakFang-BOK
33分钟前
2
0
SpringBoot整合es

文档对像 @Document(indexName = "bigdata",type = "tag")public class User { @Idprivate String openid; private List<String> tags;public String getOpenid() ......

魔法王者安琪拉
37分钟前
1
0
windows下让 jar 在后台运行的办法

windows下 运行 java jar 不出现 命令行 窗口 新建一个披处理 run.bat,内容如下 @echo off start javaw -jar xx.jar exit 双击运行即可。...

glen_xu
46分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部