Уязвимость безопасности: .exe или другие вредоносные файлы не должны загружаться путем изменения их заголовка и расширения .pdf, .doc, .docx, .xls, .xlsx, .jpg, .jpeg, .png и т. д
Мы разрешили загружать файлы .pdf, .doc, .docx, .xls, .xlsx и изображения, такие как .jpg, .jpeg, .png в ASP.net MVC 5 все работает нормально, но моя команда безопасности подняла уязвимость безопасности. Команда безопасности изменяет расширение вредоносного файла как разрешенные расширения и изменяет заголовок с поддержкой заголовка типа файла инструментом до того, как сервер попадет и файл будет загружен на сервер.
Мы находим решение в asp.net MVC C# но не получил решения, чтобы остановить загрузку вредоносного файла на сервер через мой asp.net приложение MVC C#.
Что я уже пробовал:
We have used following code and also used winista mime detect but unable to get proper solution. They are not returning proper mime type
public class urlmonMimeDetect { [DllImport(@"urlmon.dll", CharSet = CharSet.Auto)] private extern static System.UInt32 FindMimeFromData( System.UInt32 pBC, [MarshalAs(UnmanagedType.LPStr)] System.String pwzUrl, [MarshalAs(UnmanagedType.LPArray)] byte[] pBuffer, System.UInt32 cbSize, [MarshalAs(UnmanagedType.LPStr)] System.String pwzMimeProposed, System.UInt32 dwMimeFlags, out System.UInt32 ppwzMimeOut, System.UInt32 dwReserverd ); public static string GetMimeFromFile(Stream fs) { byte[] buffer = new byte[256]; fs.Read(buffer, 0, 256); try { System.UInt32 mimetype; FindMimeFromData(0, null, buffer, 256, null, 0, out mimetype, 0); System.IntPtr mimeTypePtr = new IntPtr(mimetype); string mime = Marshal.PtrToStringUni(mimeTypePtr); Marshal.FreeCoTaskMem(mimeTypePtr); return mime; } catch (Exception e) { return "unknown/unknown"; } } }