这两天小铭的电脑一直有问题,所有没大更新文章,无意中看到了程默的一篇文章,然后总结了一下,也是找到了一些原因的,话不多说,直接进入正题,我们来看看web应用安全基数,为什么是输入参数检查!开发web应用,工作中代码审核、漏洞修复!基本是我们对输入参数检查不够!
主要问题出现在3个方面:
1、对检查认识不够!经常忘记必要参数检测,特别对于一些页面只是传值,而没有写入到后端存储的参数,更是很容易遗漏。
2、对那些是输入的、那些是系统环境参数 有些没有明白,导致错误的放过该检查的参数。
3、检查方法不正确、往往检查过后,还存在问题。
我说说自己的一些看法吧,所有一切首先要认识到参数检查的重要性!为什么要参数检查?
我们还是从生活中来看吧,现在社会上,下班回家进入小区,门口保安要检查门卡,有卡才可以进入!到公司了,进门禁系统,公司需要刷员工卡,然后进入公司!现在学校、机关等等,我们发现都会有个检查的,大家都很清楚,它的目的是保证大家安全,让一些自己允许的人才可以进入!我们发现,所有检查地点,都是在分界隔离地方,也就是在进入的入口上。从上面这些场景,我们发现生活中,为了我们安全!在进入一些私人区域,都有检查口。其实web检查也是可以比拟的。web参数是最前端用户与系统接口地方,因此这个地方检查是必要的。我们只能允许满足要求的进入后端系统。这也是保证后端系统安全的前提。
漏掉该检查地方隐患!
这个问题,同样存在!前段时间,听到一个新闻,一个很高档的小区有很好的安全门禁检查!但是,它的地下车库到楼上,就没有增加检查!后来,一些别有用心的人,专门租车,从地下车库上到居民楼,进行偷盗!还有个新闻,一个小区进门地方,如果是单人的话,会检查,但是如果你开车进入,特别是名牌车!基本上不检查!后来,也导致一伙别有用心的人,驾车进入偷盗!我们做web应用,一定要知道那些参数来源于用户端输入,php代码里面的:$_GET,$_POST,$_REQUEST,$_SERVER,$_COOKIE,$_FILES等。那些来自用户,那些是系统!清清楚楚,明明白白检查!怎么样检查才正确?
这些我们也可以看看现实生活中,我们发现公司、小区、学校,每个进入的人,都要有一张发的卡,只有持卡人才可以进入!这个是限定用户范围的,只有限定范围才可以进入!这种检查方法,很常用的,也很安全!换个思路,如果小区里面,认为自己小区高档,来小区的都穿着不错。因此,把检查改为:穿正装可以进入!这样一来,如果刚好小区里面有人因为某种原因,而穿着匆忙,可能不让进入!而另外,对于别有用心的人,买套正式衣服应该很容易!因此,也很容易逃过检查!从上面两个例子我们不难发现,生活中经常检测是:通过发卡,限定用户群;而少用排除法方法!这也是,我们web参数检查中推荐的方法,限定参数的范围;不做、少做参数过滤替换检查!
好了,上面这些方法其实都来自生活,大家一看都明白。如果真的遇到做参数检查时候,有些迷糊,不妨想想生活中例子。其实,程序都是解决实际生活中问题,并且很多都来自于生活!参数需要检查、并且需要正确检查!