Как проверить, действительно ли загруженное изображение является изображением - PullRequest
0 голосов
/ 14 апреля 2019

Кто-нибудь знает, как проверить, является ли загруженное изображение изображением (а не вредоносным файлом) перед загрузкой в ​​корзину?Я уже создал все для загрузки изображения в корзину с

  if (logo) {
            //Save photo to bucket
            const pathRef = storageRef.ref('logo/' + uid + '/' + logo.name)
            pathRef.put(logo).then(() => {
                //Get logo URL
                const starsRef = storageRef.ref().child('logo/' + uid + '/' + logo.name)
                starsRef.getDownloadURL().then((url) => {
                    //Update photoURL in user
                    const user = firebase.auth().currentUser
                    user.updateProfile({
                        photoURL: url
                    }).then(() => {
                        console.log("update successfull")
                    }).catch((error) => {
                        console.log(error)
                    })
                }).catch((error) => {
                    console.log(error)
                })
            })

Я также принимаю только файлы изображений в своем «входе»

  <input style={{ display: "none" }} id="file" type="file" accept="image/*" onChange={props.change}></input>

, но я считаю, что это можно легко пропуститьизменив любой файл в формат изображения, что означает, что любой может поместить туда что угодно.Я не нашел никакой документации, что бы проверить это в функциях или где-либо еще

1 Ответ

0 голосов
/ 14 апреля 2019

Облачные функции и облачное хранилище не имеют встроенной возможности проверки, является ли серия байтов на самом деле изображением.Для них байты - это просто байты, и они не прилагают никаких усилий для интерпретации этих байтов.Облачное хранилище хранит «тип контента» как часть большого двоичного объекта, но это не является гарантией того, что в блоге.Этот тип контента является просто метаданными для блога.

Если вы хотите узнать, является ли последовательность байтов каким-либо форматом изображения (а их очень много: JPG, PNG, GIF и т. Д.), Вам потребуетсяиспользуйте другое программное обеспечение для анализа этих байтов, чтобы выяснить, отформатированы ли они так, чтобы это было приемлемое изображение по вашему определению.Например, ImageMagick расскажет что-то о содержимом файла, который называется изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...