上传文件类型限制?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件类型限制?相关的知识,希望对你有一定的参考价值。
为了网站的安全,做上传程序时,请问该限制哪些类型的文件,才不会给哪些黑良心的东西有可趁之机?
网站是C#/.NET。
注意,朋友们不要答离题啊,哈哈,我是问应该要限制哪些类型的文件,而不是怎样限制文件类型啊。
网站允许上传无非是图片,FLASH,视频,压缩包,这些对于服务器来说都是无害的。至于里面是否嵌病毒,这个是没办法控制的,即使服务器装杀毒软件也有办法免杀。
一般来说就是做扩展名判断,但是开发的时候必须要注意的是,上传后的文件必须必须改文件名称,否则容易被人用空字符(\0)截断从而上传可执行文件,例如构造"muma.aspx\0img.jpg"的文件包上传。虽然在ASP类程序中经常有这种问题,ASP.NET的没关心过,但还是需要当心点好。上传后的文件用DATETIME.Ticks之类的数字重命名一下更稳妥点。 参考技术A cs/aspx/exe/bat/asmx/ascx/resx等等网站会用到的文件,其实你不用去限制这些文件,这些文件太多了
你只要设定你只需要他上传的文件类型就可以了,不是这个类型的文件统统不允许上传就OK了! 参考技术B 我是问应该要限制哪些类型的文件,而不是怎样限制文件类型啊。
我先好好研究研究你这句话...
------------------------
拿后缀名限制???没想过..
给你个例子:
if(this.myfile.PostedFile.ContentType.ToLower().IndexOf("image")<0)
//该文件不是图片
用后缀判断相当不安全. 参考技术C 实际上都不是很安全
this.myfile.PostedFile.ContentType这种方式可以防止一般的行为改后缀名的行为
但是如果那个人把注册表改了 还是不能阻止
这个问题值得研究啊 参考技术D 用正则表达式 vs2005自带的那种验证控件就行
^(([a-zA-Z]:)|(\\2\w+)\$?)(\\(\w[\w].*)+(.jpg|.JPG|.jpeg|.JPEG|.BMP|.bmp|.gif|.GIF)$)
以上是关于上传文件类型限制?的主要内容,如果未能解决你的问题,请参考以下文章