Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Безопасное копирование (https://javascript.ru/forum/misc/71523-bezopasnoe-kopirovanie.html)

Sonya 26.11.2017 12:41

Безопасное копирование
 
Здравствуйте! С помощью функции copy копирую картинки в папку. Будет ли достаточной защитой от возможных подмен или других возможных внедрений записей кодов в картинку, если я явно запрещу выполнение в папке с картинками скриптов, с переименованием файлов при копировании и установлении определенного расширения, например, gif для всех копированных файлов?

laimas 26.11.2017 13:19

А почему вопрос в разделе JS?
Смотря как вы принимаете изображения, по крайней мере функцию copy применять не рекомендуется при сохранении файлов принятых по HTTP.
А вот запрещать выполнение скриптов в этой папке да, это правильно, да и от внедренного мусора можно тоже избавиться посредством GD.

Sonya 26.11.2017 13:34

Цитата:

Сообщение от laimas (Сообщение 471235)
А почему вопрос в разделе JS?

Извиняюсь, писала в разделе своей последней темы, не посмотрела.

Sonya 26.11.2017 13:42

Цитата:

Сообщение от laimas (Сообщение 471235)
от внедренного мусора можно тоже избавиться посредством GD.

А можно поподробнее, как именно. Библиотека подключена.

Lion777 26.11.2017 13:49

Например, функция getimagesize() возвращает массив данных о изображении, а если ошибка, то не изображение..

---
Но есть такой вариант
http://php.net/manual/ru/function.finfo-file.php
---
Можно так же самому по сигнатуре файла определять, что за файл

Sonya 26.11.2017 13:56

Lion777,
Да, о функции читала, но там тоже есть какие-то ухищрения.
laimas,
А как загружать файл из ссылки, без использования copy, через file_get_contents?

Lion777 26.11.2017 14:13

file_get_contents('http://ссылка');
для проверки используйте расширение fileinfo, должно быть включенно
---
http://php.net/manual/ru/ref.fileinfo.php
---
echo mime_content_type('image.jpg');

laimas 26.11.2017 14:18

Цитата:

Сообщение от Lion777
Например, функция getimagesize()

Это не то, да обмануть ее, да и взлом через нее возможен.

laimas 26.11.2017 14:19

Цитата:

Сообщение от Sonya
А как загружать файл из ссылки, без использования copy, через file_get_contents?

А что за файлы и откуда вы загружаете?

Sonya 26.11.2017 14:25

Цитата:

Сообщение от laimas (Сообщение 471243)
А что за файлы и откуда вы загружаете?

Файл картинок, ссылку на картинку указывает пользователь. У меня реализовано так: через copy сохраняется файл с рандомным именем и расширением gif. Файл принимается только через ссылку (без загрузок с компьютера).


Часовой пояс GMT +3, время: 13:25.