За последние 24 часа нас посетили 20330 программистов и 1093 робота. Сейчас ищут 847 программистов ...

Загрузка картинок по AJAX (куда их девать?)

Тема в разделе "PHP для новичков", создана пользователем glorsh66, 12 мар 2018.

  1. glorsh66

    glorsh66 Активный пользователь

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    Вопрос по серверной части - с клиентской более мене все понятно (да и куча плагинов есть)
    А именно меня вот что интересует как отсеять нужные и ненужные картинки на сервер сайде? Как защититься от супер спама картинок?


    Вот предположим сценарий - есть форма регистрации или новое обьявления.
    Пользователь заполняет поля. и есть JS - форма для добавления файлов.

    Так вот - когда он добавил файл - файл дожен куда то сохраниться, так куда его сохранять? Мы же не знаем не id пользователя ничего.
    Потом - как ограничить колличетсво файлов которые может юзер загрузитьт (ведь кулцхакер может легко поправить JS и это ограничение не безопасно)
    Потом - если вдруг юзер загрузил скажем 5 картинок, и потом тупо закрыл браузер. Что делать с оставшимися? ведь у нас на серваке 5 картинок на которые у нас нет ссылки?
    Делать промежуточную таблицу "чистилище" в которую непотвержденые файлы (ну ссылки естевственно) заносятся, и уже транзакцией убираются если юзер все таки решился отправить форму?


    Или как защититься от пользователя который предположим подковыряв JS захочет грузить 1000 файлов.

    И потом - как лучше всего и надежнее добавлять в вместе с формой ссылки на выбранные пользоватлем файлы? (ну например что бы юзер не смог назначить себе чужую картинку)
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @glorsh66, большинство ваших вопрос решается одним принципом: "Зарегистрировался - можешь добавлять файлы".
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    этот принцип не отменяет описанного выше поведения.... даже добропорядочный и зарегистрированный пользователь имеет привычку передумывать, менять свое мнение и грузить например 3-4 файла.. .а останавливаться на 5-м

    Лично я решал вопрос так:
    - при временном сохранении использовал в пути ид пользователя - все картинки загружаемые им были там
    - при осуществлении загрузки - перемещал окончательный файл в место хранения, остальные картинки после этого в каталоге удалял
    - раз (или как вам удобно) в день, ночью - по расписанию очищал временные папки пользователей от файлов старше 1 дня например
     
  4. glorsh66

    glorsh66 Активный пользователь

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    А как передавались в формой имена выбранных в итоге файлов?

    НУ я в том плане - что кулц хакер может получается поменять отоброжаемое имя файла, и чужую картинку присвоить себе (не загружая ее)
     
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Имена файлов всегда генерятся на сервере
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    взлом еще нужно заслужить)
     
  7. glorsh66

    glorsh66 Активный пользователь

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    А передавать имя файла лучше всего скрытым полем? (ну в том плане, что пользоватль добавил картинки - и они лежат в временной папке)

    А потом нажимает кнопку submit - и инфа идет с текстовыми полями (как имя, email)
    Но как связать его файлы и его данны?

    Я вижу решение что при добавлении файла - делать скрытое поле с именм файла. (соответсвенно если юзер убирает картинку, то и убирать скрытое поле).


    Или есть более элегантные решения?