Я создаю веб-приложение, использующее hapi.js, которое позволяет пользователям загружать изображения.Я проверяю загруженные изображения как на клиенте, так и на сервере, чтобы разрешить только файлы .jpg
/ .jpeg
, .png
и .gif
.Тем не менее, я новичок в области безопасности веб-приложений, и когда дело доходит до очистки изображений, я немного растерялся.
Я пытаюсь следовать этим рекомендациям OWASP Подтверждение загрузки рекомендации:
- Использование библиотек перезаписи изображений для проверки правильности изображения и удаления лишнего содержимого.
- Установите расширение сохраненного изображения в качестве допустимого расширения изображения на основе обнаруженного типа содержимого изображения из обработки изображения (например, не доверяйте только заголовку при загрузке).
Это мои вопросы:
- Могу ли я просто запустить каждое загруженное изображение через пакет типа
sharp
, и процесс перезаписи удалит любой встроенный код?Автор sharp
сделал краткий комментарий по безопасности , но я до сих пор не понимаю, каковы возможные проблемы безопасности или как их решить. - Я прочитал комментарии, в которых говорится, что чтение байтов в
Buffer
не может выполнить вредоносный код .Если бы я должен был ввести файл в sharp
как объект Buffer, удалил ли бы он какой-либо вредоносный код и исключил бы возможные проблемы безопасности? - Нужно ли запускать загруженные изображения с помощью антивирусной проверки (например,
clamscan
или node-virustotal
или Web Exploit Detector
)?Если да, нужно ли мне запускать изображения через сканирование до или после того, как я запускаю изображения через процессор изображений, или мне следует выполнять сканирование без обработки изображений?
Мне бы очень хотелось понятьБезопасность веб-приложений лучше (особенно для приложений Node), поэтому любые указания, которые вы можете дать мне по этим вопросам (или места, где я могу узнать больше), будут очень благодарны.
Спасибо!