web 文件上传 续 在服务器端判别类型 欢迎拍砖!

4 篇文章 0 订阅
3 篇文章 0 订阅

这里特别感谢可爱的宋星小大叔以及武让小帅哥~~~~

        其实是这样的 我之前用uploadify插件上传图片 虽然在前台限定了格式 但是宋星小大叔说可是跳过js代码上传木马之类的 在后台也得再验证一遍 并告诉我可以通过文件首部二进制来查看类型

        于是俺跑去问武让小帅哥 看过他的几篇学习笔记 觉得他对这方面挺在行的

        果然小帅哥很快就得出了结论 并找到了相应的文档

俺根据小帅哥的文档 几乎不用变动代码(其实就是米有变动..),通过了测试

这里他用了一个枚举类型存放类型和相应的ascii 俺要做的就是取流文件(图片上传后以流文件的形式在服务器端被接收)的前两字节 拿出来匹对下

俺的测试代码:

Code:
  1. [HttpPost]   
  2.        public ActionResult Register(HttpPostedFileBase fileData, string folder,FormCollection formCollection)   
  3.        {   
  4.            Stream fs = fileData.InputStream;   
  5.            //data存放前两字节的东西   
  6.            string data = fs.ReadByte().ToString();   
  7.            data += fs.ReadByte().ToString();   
  8.            FileExtension extension;   
  9.            try//转换成功,类型符合  
  10.            {   
  11.                extension = (FileExtension)Enum.Parse(typeof(FileExtension), data);   
  12.            }   
  13.            catch //转换失败,类型不符合  
  14.            {   
  15.                extension = FileExtension.VALIDFILE;   
  16.            }   
  17.            return View();   
  18.        }   
  19.   
  20.        public enum FileExtension   
  21.        {    
  22.            JPG=255216,   
  23.            GIF=7173,   
  24.            PNG=13780,   
  25.            BMP=6677,   
  26.            VALIDFILE = 9999999   
  27.        }  

帅哥的文档中还提及了txt格式

这里有一个很简单的方法:把给定的那个文件看作是无类型的二进制文件,然后顺序地读出这个文件的每一个字节,如果文件里有一个字节的值等于0,那么这个文件就不是文本文件;反之,如果这个文件中没有一个字节的值是0的话,就可以判定这个文件是文本文件了。

再次感谢两位帅哥~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 文件上传漏洞是Web应用程序中常见的安全漏洞之一,攻击者可以通过上传恶意文件来执行代码、获取敏感信息、攻击其他用户等。为了防止文件上传漏洞,可以采用以下防御机制: 1. 文件类型检查:在上传文件之前,应该对文件类型进行严格的检查,只允许上传指定的文件类型,例如图片、文本、PDF等。可以使用文件扩展名、MIME类型等方式来检查文件类型。 2. 文件大小限制:限制上传文件的大小,避免上传过大的文件导致服务器资源耗尽或拒绝服务攻击。 3. 文件名过滤:过滤掉恶意文件名,例如包含特殊字符、脚本代码等的文件名。 4. 文件内容检查:对上传的文件内容进行检查,避免上传包含恶意代码的文件。 5. 文件路径限制:限制上传文件的存储路径,避免上传恶意文件到系统目录或其他敏感目录。 6. 权限控制:对上传文件进行权限控制,例如只允许特定用户上传文件,或限制上传文件的访问权限。 7. 文件重命名:在上传文件时,将文件重命名为随机字符串,避免上传文件名相同的文件覆盖原有文件。 综上所述,通过以上防御机制可以有效地防止文件上传漏洞的发生,提高Web应用程序的安全性。 ### 回答2: WEB安全文件上传防御机制是指在网络应用中,为防止恶意用户上传危险文件并对系统造成安全威胁,采取的一系列防御措施。 首先,一种常见的防御机制是对文件类型进行限制。通过白名单或黑名单的方式,设置允许或禁止上传的文件类型,可以阻止用户上传可能存在风险的文件,如执行文件、脚本文件等。这种限制可以在前端或后台进行,前端可通过验证文件名后缀来判断,后台可通过文件头信息或内容进行判断。 其次,还可以对文件进行内容检测。这种机制可以通过对上传文件进行解析,检查其中的内容是否符合安全要求。例如,可以检查上传的图片是否包含恶意代码、上传的文档是否存在潜在的漏洞等。这需要在服务器端进行深入解析和检测,以确保上传文件的安全性。 此外,还可以对上传的文件进行重命名和存储路径随机化。通过对文件名进行加密或随机命名,可以避免恶意用户利用已知的文件名进行攻击,同时还可以将上传的文件存储到不可访问的路径中,提高上传文件的安全性。 最后,日志记录和监控也是重要的防御机制。通过记录每次文件上传的相关信息,包括上传者、上传时间、上传文件的属性等,可以方便后对上传行为进行监控和追溯,及时发现并处理潜在的安全威胁。 综上所述,WEB安全文件上传防御机制涵盖了文件类型限制、内容检测、重命名与路径随机化、日志记录与监控等多种措施,通过这些手段可以提高网络应用的安全性,预防恶意文件上传对系统造成的安全威胁。 ### 回答3: WEB安全文件上传防御机制是为了防止恶意用户上传含有安全漏洞的文件或恶意文件,对WEB应用进行保护的一种机制。 首先,常用的WEB安全文件上传防御机制是通过对文件类型和扩展名进行检查。通过验证文件的MIME类型和扩展名,可以辨别出危险的文件类型,例如可执行文件或脚本文件。如果检测到这些危险的文件类型,就应该及时拒绝上传,并给出合理的提示。 其次,WEB安全文件上传防御机制还可以通过对文件内容进行检查来确保文件的真实性和完整性。可以使用文件的特征码或哈希值进行校验,以确保文件内容没有被篡改。同时,还可以检测文件中是否含有恶意代码、文件头是否正确等,以确保上传的文件安全可靠。 此外,应该对上传文件的大小进行限制,防止恶意用户上传过大的文件导致服务器压力过大或占用过多的存储空间。可以设置合理的文件大小阈值,超过阈值的文件应及时拒绝上传,并给出相应的警示和提示。 最后,对于敏感文件的上传,应该进行额外的权限设置和访问控制。例如,将敏感文件存放在非web可访问的目录下,通过程序进行读取操作,从而避免用户直接访问敏感文件。 综上所述,WEB安全文件上传防御机制是通过对文件类型、扩展名、内容的检查和限制,确保上传文件的安全性和完整性,同时阻止恶意用户利用文件上传功能进行攻击。这些机制可以有效地保护WEB应用的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值