后缀名验证

ma.aspx.jpg中的.jpg修改为0jpg 可绕过后缀名验证
正确的解决方法是:

      /// <summary>
      /// 判断是否IMG文件 bmp/JPEG/GIF/PNG 按前几个字节比较
    /// </summary>
     /// <param name="filename">string扩展</param>
     /// <returns></returns>
        public static bool IsImgFile(this string filename) {
            if (!FileDirectory.FileExists(filename)) return false;

            ushort code = BitConverter.ToUInt16(File.ReadAllBytes(filename), 0);
            switch (code) {
                case 0x4D42://bmp
                    return true;
                case 0xD8FF://JPEG   
                    return true;
                case 0x4947://GIF   
                    return true;
                case 0x5089://PNG   
                    return true;
                default:
                    return false;
            }
        }

  

原文地址:https://www.cnblogs.com/yueyue184/p/4070532.html