Почему бы просто не проверить, что файл является действительным изображением?:
from PIL import Image
image = Image.open(file)
image.verify()
Как предложил другой плакат, вы действительно можете попытаться выполнить преобразование и проверить, не возникло ли исключение, но verify () будет возможно будет быстрее.
Или, может быть, вы можете попробовать определить тип?:
import imghdr
path = 'Image.jpg'
imghdr.what(path)
Или
from PIL import Image
image = Image.open('myimage.png')
image.format
Используя любой из вышеперечисленных методов, вы можете определить, файл на самом деле изображение или нет. Если это не изображение, считайте файл поддельным и не выводите его ни на одну из своих веб-страниц. Если файл не выводится, этот вектор не подвергается риску XSS, потому что даже если файл имеет размер HTML, не выводя его на вашу страницу, он не может поставить под угрозу вашу страницу.