Как проверить ограниченный файл в Javascript или Apex - PullRequest
0 голосов
/ 30 октября 2018

При загрузке файла нам нужно проверить, является ли файл действительным или ограниченным по OWASP.

Допустимые типы файлов: txt, ppt, pptx, doc, docx, xls, xlsx, csv, jpeg, jpg, bmp, gif, png Ограниченные типы файлов: exe, jar, zip, ini, log [исполняемые файлы]

Мы выполнили следующие проверки в javascript.

  1. Мы проверяем файлы по расширению [отлично работает]
  2. Мы оцениваем содержимое файла по магическим числам [шестнадцатеричный код], независимо от того, было ли изменено расширение файла. это прекрасно работает для большинства типов файлов.

Но проблема здесь в том, что файлы 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.

1 Ответ

0 голосов
/ 30 октября 2018

Исправлена ​​проблема с чтением содержимого файла с помощью FileReader API и проверкой, содержит ли файл [Content_Type.xml]. Если файл имеет формат docx, xlsx или pptx, он возвращает [content_type] .xml при чтении содержимого файла из программы чтения файлов. Если это jar / odt / odc / apk или любой другой файл, он возвращает другую строку.

...