如果做的是公网的项目,特别是政府的,那么有一个问题就要考虑的非常好,就是上传文件的安全控制。
上传通常都是黑客攻击网站的重要途径,这个让我们很痛苦,因为我们的经验不及这些黑客,甚至被玩弄于鼓掌之间,其实也挺佩服他们的说。
很多web编辑器,都有上传的功能,fck,kindeditor,Uedit等,用的最多的是kindeditor这个开源的控件,功能都是十分强大的,但同时也存在很严重的漏洞,比如上传漏洞。
很多时候,开发人员直接把kindeditor的demo就拿来用了,但是这个demo并没有对上传的安全性进行控制,甚至不知道怎么进行安全控制。
经验需要在实际问题中找出来,我们就上传的安全性控制来讨论一下:
上传一般是图片比较多,是的,图片文件是网站中占用最大的,但是高手们就是利用了这些图片进行木马上传,
木马这个词来源特洛伊木马的典故,顾名思义,他不是一个真的图片,而是利用了一些IIS的漏洞。
那么我们需要对图片进行严格控制,不能单靠post的数据中的MIME数据来判断文件的类型,因为这些都是可以根据工具来修改的,
简单的判断还是会被他们轻易避过判断,依然保存完整,会让我们发火但是无可奈何。
那么怎么样控制:
1、使用文件头来判断,
这种判断很好,很严格,可以让木马也没办法上传,我试过这种方法,也发现还是不错的,因为毕竟涉及到文件底层的字节序列,所以控制相当严格,不容易被绕过。
这种控制,比较好的就是根据其扩展名与其文件头前几个字节进行判定,如果二者相符合,那么就是合法的文件。
2、压缩图片,
这种办法很有意思,有网友建议,在保存图片的时候适当修改下文件的尺寸,这样可以破坏文件的内部结构,也就破坏了文件的基本结构,那么如果是木马,它就被破坏了。
web的安全性,还是需要一点一点的去积累的....