关于Asp.Net中FileUpload控件属性PostedFile.ContentType的提示
来源:互联网 发布:淘宝店铺图标素材 编辑:程序博客网 时间:2024/06/01 09:52
关于Asp.Net中FileUpload控件属性PostedFile.ContentType的提示
PostedFile.ContentType这个属性通常用来判断上传文件的MIME类型,我们通常以此来拒绝某些类型的上传,比如仅允许上传图像文件,然而这个属性其实是很不稳定的:
MIME类型没有统一
假如我们希望仅允许上传jpg文件,那么通常做法就是判断上传文件的ContentType是否为“image/jpeg”,不是则拒绝,着看起来很简单,但是实际上这个网站通过Chrome浏览和使用时不会有问题,但使用IE(测试时使用的是IE8)上传jpg文件就会遭拒了,经过调试,发现IE上传时的ContentType是“image/pjpeg”。
这还仅限于两个浏览器、一种文件格式的情况,如果是多家浏览器多种文件格式的话,要兼顾就有得头疼了。
在我简单的几下测试中,发现的其他区别有:
- png文件Chrome提交的ContentType为image/png,而IE提交为image/x-png
- zip、rar、msi等文件使用Chrome提交的ContentType都为null,IE可以正确获取
可靠性与安全性低
由上一个问题很容易就想出:MIME类型完全是由客户端说了算的
而既然是客户端的东西,那就是不可信的,因为用户完全可以使用非主流浏览器或是恶意程序进行欺骗。
比如将可执行文件伪装为图像的MIME骗过服务端的检查,而如果你正好在服务端存储时仍保留了原文件的扩展名的话,就非常危险了。
(比如通过欺骗上传了一个aspx文件,然后就可以通过访问其url直接执行了)
结语
为今除了这个属性之外,还是没有什么更好的方法来获取上传文件真实类型的,所以只能继续使用,但要记住需在兼容性和安全性两方面多下功夫,否则会很郁闷。
转载请遵循此协议:署名 - 非商业用途 - 保持一致
链接:http://skyd.cnblogs.com/
0 0
- 关于Asp.Net中FileUpload控件属性PostedFile.ContentType的提示
- Asp.Net中FileUpload控件属性PostedFile.ContentType
- ASP.NET FileUpload.PostedFile.ContentType
- asp.net PostedFile.ContentType的所有类型
- [.Net码农]FileUpload.PostedFile 属性
- asp.net中ContentType属性
- 关于ASP.NET的FileUpload控件
- 关于ASP.NET控件FileUpload的一个问题
- ASP.NET 2.0 中FileUpload上传控件的使用
- ASP.NET 2.0 中FileUpload上传控件的使用
- asp.net中FileUpload控件研究汇总
- Asp.net 2.0 FileUpload 控件的用法
- 上传的PostedFile.ContentType所有格式
- ASP.Net中控件的EnableViewState属性
- ASP.Net中控件的EnableViewState属性
- ASP.Net中控件的EnableViewState属性
- ASP.Net中控件的EnableViewState属性
- ASP.Net中控件的EnableViewState属性
- HashSet重复标准_重复判断的问题,颜色形同,坐标点距离不超过2,则认为是同一个点对象
- Hibernate连接Access数据库
- iOS唯一标示符引导
- java中基于线程池的任务调度设计
- Neutron L3 agent HA
- 关于Asp.Net中FileUpload控件属性PostedFile.ContentType的提示
- MySql日期操作
- 第三章作业(改)
- zedboard OPENCV移植
- How to create Dynamics CRM Online User License
- 将Sublime Text 2搭建成一个好用的IDE
- android 瀑布流效果(仿蘑菇街)
- 第六周作业
- php开发框架 yii框架搭建(windows 和Linux)