后缀名验证

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

      /// <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;
            }
        }

  

posted @ 2014-11-03 10:11  Red Cat  阅读(568)  评论(0编辑  收藏  举报

Copyright © 2022 LyShark Powered by .NET 6 on Kubernetes
Theme - LyTheme 1.0