@Kostik_1993
Fullstack Web Developer | PHP | Laravel | Vue.js

Как защитить картиночный сервер от спамных загрузок?

Привет. Я делаю проект, ранее на нем фотографии грузились локально в папке проекта. Сейчас потребовалась масштабируемость. Принял решение о переносе изображений в облако. Для загрузки и отдачи (чтобы экономить траф. облака) будет отдельный сервер. Хотелось бы фотки грузить с фронта приложения на картиночный, а оттуда сразу в облако перемещать, но не могу придумать здравую схему по загрузке, а точнее чтобы грузить можно было только с моих приложений, может быть какой-то ключ или что-то применить, что можете посоветовать?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
pro100chel
@pro100chel
Python && PHP Developer
Никак. В любом случае при наличии сильного желания все ваши защиты будут вскрыты.

Максимум что можно сделать - усложнить реверс инжиниринг протокола работы вашего картиночного сервиса.

1. Если хотите защититься от левых загрузок - как минимум для начала нужно поставить потолок загрузки картинок с ip адреса. Но учитывая халявные прокси это проблемой не станет для вредителей.

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

3. OК. Идем далее. Я что-то говорил про реверс инжиниринг? Ах, да.
Хочется чтобы никто не мог вот так прям с ходу грузить картинки? Пожалуйста - делай протокол общения между загрузочным сервером и клиентом. Какой именно протокол? Как минимум передача какого либо ключа при загрузке. Что за ключ? Да любой, главное чтобы он был уникальный для каждой загрузки. Тут можно похимичить с генерацией ключа, обфусцировать код, применять шифрование, HMAC и прочее что сильно затруднит распутывание генерации ключа.

4. Ну и последний способ - капча. Куда же без нее. При частых загрузках с ip - кидаем ему капчу. Пускай проходит. Если хочешь - можно на каждую загрузку поставить капчу. Больно будет юзерам, ну что поделать.

В заключение. Нереально полностью защититься от спам загрузок.

Блокировка по ip? Прокси.
Блокировка стран? Прокси из целевых стран.
Сложная генерация ключа? Реверс-инжиниринг.
Капча? Антигейт.

Все в совокупности - максимально подгадит любителям погадить на сервер. Тут смысл не в том чтобы полностью защитить приложение, а в том, чтобы сделать вредителям максимально неудобным спамить на сервак.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы