При загрузке файла нам нужно проверить, является ли файл действительным или ограниченным по OWASP.
Допустимые типы файлов: txt, ppt, pptx, doc, docx, xls, xlsx, csv, jpeg, jpg, bmp, gif, png
Ограниченные типы файлов: exe, jar, zip, ini, log [исполняемые файлы]
Мы выполнили следующие проверки в javascript.
- Мы проверяем файлы по расширению [отлично работает]
- Мы оцениваем содержимое файла по магическим числам [шестнадцатеричный код], независимо от того, было ли изменено расширение файла. это прекрасно работает для большинства типов файлов.
Но проблема здесь в том, что файлы jar, odt, docx, pptx, ppt, xlsx имеют одинаковые магические числа.
Мы не разрешаем пользователю загружать исполняемые файлы и файлы zip, jar, odt.
Как различить jar, odt и zip с docx, pptx, xlsx?
Ссылка:
https://en.wikipedia.org/wiki/List_of_file_signatures
https://medium.com/the-everyday-developer/detect-file-mime-type-using-magic-numbers-and-javascript-16bc513d4e1e
Пожалуйста, дайте мне знать любые решения или предложения для достижения этого в Javascript или Apex.