Posted 23 декабря, 20149 yr comment_76650 Приветствую! Если ли решение для такой задачи: Если юзер загружает в сообщение изображение с внешнего сайта, нужно чтобы это изображение закачивалось на мой сервер, и отдавалось на форуме уже с моего сервера и никак не зависло от внешнего? Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/ Share on other sites Больше вариантов
24 декабря, 20149 yr comment_76663 Добрый день. >Inline Image Uploader for IP.Board 3.x 1.0.0 Других возможностей нет. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=76663 Share on other sites Больше вариантов
24 декабря, 20149 yr comment_76665 Других возможностей нет. Есть community.invisionpower.com/files/file/7188-dp34-download-images/ Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=76665 Share on other sites Больше вариантов
9 июля, 20159 yr Author comment_90328 community.invisionpower.com/files/file/7188-dp34-download-images/ Спасибо! Купил, развернул на тестовом форуме. Вроде все развернулось, тестовая картинка загрузилась успешно. Увидел, что имя файла не изменяется. Решил проверить на простейший баг - загрузил с другого сайта другое изображение, но с таким же именем. Ну и да, изображение в папке было перезаписано новым. То есть злоумышленник может напакостить, подменяя изображения в чужих постах, загружая в свои посты изображения с тем же именем. Как такой эпик фэйл можно было допустить при разработке я не очень понимаю. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90328 Share on other sites Больше вариантов
10 июля, 20159 yr Author comment_90329 Я вот ни разу не программист, но решил посмотреть, что можно сделать. В файле нашел место, где генерируется имя. Нагуглил, что в PHP случайное число можно получить функцией rand(). В итоге заменил $imageFull = $imageName . '.' . $imageExt; на $imageFull = $imageName . '_' . rand() . '.' . $imageExt; теперь при записи к файлу добавляется случайное число и перезаписи не происходит. Конечно, костыль, но работает. Больше беспокоит, что если там такие очевидные косяки, не нарвусь ли я с этим модом еще кна какие-нибудь грабли. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90329 Share on other sites Больше вариантов
10 июля, 20159 yr comment_90331 @polym0rph вы автору написали об этом баге? Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90331 Share on other sites Больше вариантов
10 июля, 20159 yr comment_90338 В файле нашел место, где генерируется имя. Нагуглил, что в PHP случайное число можно получить функцией rand(). В итоге заменил Вместо rand() используйте лучше что-нибудь типа md5( uniqid( microtime(), true ) ) Edited 10 июля, 20159 yr by LvsF Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90338 Share on other sites Больше вариантов
10 июля, 20159 yr Author comment_90353 @polym0rph вы автору написали об этом баге? Да, на странице приложения invisionpower.com, чтобы заодно и пользователей предупредить. Но сообщение еще пока не прошло местную модерацию. Я так подумал, можно на форуме, которую такую штуку использует, пройтись парсером, собрать все имена картинок, и скриптом их все заменить, подгружая какую-то одну, изменяя ее имя. Неприятно очень будет для форума. Вместо rand() используйте лучше что-нибудь типа md5( uniqid( microtime(), true ) Спасибо! Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90353 Share on other sites Больше вариантов
10 июля, 20159 yr comment_90354 Да, на странице приложения invisionpower.com, чтобы заодно и пользователей предупредить. Но сообщение еще пока не прошло местную модерацию. Можете в теме поддержки файла написать. Там премодерации нет. Я так подумал, можно на форуме, которую такую штуку использует, пройтись парсером, собрать все имена картинок, и скриптом их все заменить, подгружая какую-то одну, изменяя ее имя. Неприятно очень будет для форума. Не понял. Судя по скриншоту, в приложении есть инструмент для этого. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90354 Share on other sites Больше вариантов
10 июля, 20159 yr Author comment_90359 Можете в теме поддержки файла написать. Там премодерации нет. Не понял. Судя по скриншоту, в приложении есть инструмент для этого. 1. Да, там тоже написал. 2. Это скорее сценарий для атаки, как форуму навредить, где такой мод есть. Кстати, внутренним инструментом пробовал заменять, постоянно на тестовом сервере вываливается, даже при 5 элементах в очереди, вместо дефолтных 50. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90359 Share on other sites Больше вариантов
10 июля, 20159 yr Author comment_90364 md5( uniqid( microtime(), true ) не хочет, в логах PHP Parse error: syntax error, unexpected ';' Покурил мануалы, остановился на md5(uniqid(rand(),1)) так все работает. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90364 Share on other sites Больше вариантов
10 июля, 20159 yr comment_90367 не хочет, в логах PHP Parse error: syntax error, unexpected ';' Покурил мануалы, остановился на md5(uniqid(rand(),1)) так все работает. Закрывающая скобка похерена была. Link to comment https://ipbmafia.ru/topic/9993-zagruzka-izobrazhenij-na-svoj-server-pri-ukazanii-vneshnih-ssylok/?&do=findComment&comment=90367 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.