Следующие 2 шага являются основными.
В веб-интерфейсе допускаются только определенные расширения файлов, такие как (.pdf, .png и т. Д.) С такими ограничениями, как размер. (Не забывайте, что интерфейсным кодом можно манипулировать).
2. Вам также необходимо проверить расширения и размеры файлов в бэкэнде (если вы используете нод, вы можете использовать multer для достижения этой цели).
Что еще мы можем сделать в бэкэнде?
Если мы полагаемся только на проверку расширений, это не поможет. (любой может изменить имя sample.exe на sample.jpg и загрузить).
Например, если вы проверяете, загружен ли файл загруженного изображения или нет в бэкэнде, кроме проверки с расширением файла, вы также можете следовать нижеприведенному подходу.
Первые восемь байтов файла PNG всегда содержат следующие (десятичные) значения: 137 80 78 71 13 10 26 10
Если вы хотите проверить, является ли загруженный файл png или нет, условие будет работать. Мало того, что если вы хотите проверить загруженные файлы должным образом или нет, вы можете следовать некоторым подходам, как указано выше. (для .pdf, .doc могут быть некоторые правила). Вы можете проверить данные подписи MIME, что является лучшей практикой.
Не сохранять загруженные файлы в хранилище кода бэкенда. Храните их в другом рабочем пространстве. (необязательный)
Следующие ссылки могут помочь.
Облачные хранилища
Помимо хранения файлов на локальном сервере, вы можете сохранять загруженные файлы в облаке, например, в amazon s3 bucket. После каждой загрузки любого файла в эту корзину s3 вы можете запускать сканер с помощью lambdas (автоматических сканеров файлов на amazon).
Кроме amazon вы также можете использовать Google Drive для загрузки файлов (не оптимальный вариант). Но когда кто-то загружает загруженный файл, Google автоматически проверяет на наличие вирусов.
ссылки на сканирование файла амазонки s3 bucket ::
сканирование файлов корзины amazon s3 SO
амазонка s3 bucket files reddit
s3 сканирование файлов с использованием lambda & clamav
Для локального сервера ::
Официальная проверка подписи MIME
плагин проверки типов файлов
сканирование моллюсков npm
проверка содержимого изображения без расширения SO 1
проверка содержимого изображения без расширений SO 2