Если записать ссылку другого сайта в БД, есть опасность взлома через него?
Всем привет! На сайте хочу добавить возможность добавления авки. Для этого пользователь должен указать ссылку на картинку, который хочет поставить на авку. Если он укажет на какой-нибудь сайт с вредоносным файлом, он сможет вломать мой сайт(загрузить шел, sql инъекция и т.п.)?
Стоит ли сделать проверку? Если да, то был бы рад примерам или статье по этой теме.
1) Пилите сами обработку файлов - загружаем в память, проверяем, пересохраняем в нужном формате ни в коем случае не сохраняем на диск в исходном виде.
2) Например используйте https://ru.gravatar.com весьма удобно)
нет он его безопасно сохраняет обрабатывает сжимает и тд.
В свою БД вы пишите идентификатор который получили после обработки файла(HASH).
После все профили у вас будут иметь стандартную схему аватара https://www.gravatar.com/avatar/HASH и вы дополнительно можете указать размер например ?s=20 .
Если нужен стандартный аватар можно указать параметр d (default)
d=https://your-domain.com/default-avatar.jpg. В таком случае если аватара с нужным хешем нет будет использоваться дефолтный который вы укажете.
В любом случае картинку нужно забирать к себе, проверять и сохранять у себя на сервере. Вы же не хотите потом видеть кучу дыр и тормозов когда внешние сервера отключатся. Вот во время скачивания к себе проверяйте изображение.
Василий Пупкин, давай-ка ты перечитаешь комментарии для начала. Автор не хочет загружать на сервер картинки. Он хочет, чтобы пользователь указал прямую ссылку на изображение.
rinaz22, При использовании просто внешних ссылок, не сервисов, вам подсунут ссылку на картинку в 500Mb и вы долго будете думать что это у вас сайт в выдачах упал :)
Кстати сервис граватар может "карту" перемещений e-mail адреса по сайтам строить или нет?
выделите отдельный сервер под картинки пользователей, а в БД храните просто ссылки на картинки на своём отдельном сервере
хранить ссылки на файлы на внешних ресурсах - имхо не стоит