Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

У меня есть платформа для работы с метафорическими ассоциативными картами. Это инструмент психологов, коучей: колода картинок, вопросы, разговор. Звучит нишево, но суть задачи универсальна – авторский визуальный контент в вебе, который надо защитить от массового скачивания и пиратства. При этом контент загружают сами пользователи. Если вы делаете галерею, маркетплейс иллюстраций, образовательную платформу с визуалами или любой сервис, где картинки – это ценность, а не декорация, эта статья для вас. Я расскажу, как выстроил многослойную защиту изображений, не превращая при этом продукт в крепость, из которой неудобно пользоваться.

https://habr.com/ru/articles/1004580/

#WebCrypto_API #защита_изображений #водяные_знаки #UGC #Canvas_API #тайлинг #ECDSA #антипиратство #OffscreenCanvas #rate_limiting

Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

У меня есть платформа для работы с метафорическими ассоциативными картами. Это инструмент психологов, коучей: колода картинок, вопросы, разговор. Звучит нишево, но суть задачи универсальна – авторский...

Хабр

Как я написал Telegram-бота для SEO-аудита и не дал ему стать инструментом для атак

Рекомендация по КДПВ: Практический гайд по созданию Telegram-бота для автоматизированного анализа сайта: broken links, базовый security-check, отчёты. Минимум теории — максимум рабочего кода.

https://habr.com/ru/articles/996844/

#Telegram_бот #Python #SSRF #rate_limiting #Redis #SEO_аудит #БаденБаден #pyTelegramBotAPI #DNS_rebinding #битые_ссылки

Как я написал Telegram-бота для SEO-аудита и не дал ему стать инструментом для атак

Вступление (до ката) Проверить мета-теги на одной странице — дело пяти минут. Найти битые ссылки на сайте из 500 страниц — уже задача на вечер. А если нужно ещё проанализировать тексты на...

Хабр

Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи

Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше? Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение? Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...

https://habr.com/ru/articles/983196/

#java #rate_limiting

Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи

Ничто не предвещало беды, просто очередная минорная фича в проекте. Необходимо ограничить количество вызовов определенного функционала внутри сервиса. Если бы это была классическая задача защиты от...

Хабр

Автостопом по граблям: асинхронное лимитирование запросов в Python

Одним солнечным днём мне прилетела задача - написать асинхронный механизм выгрузки данных по API. И тут началось: наивные решения, которые не работают, теоретически правильные концепции, разваливающиеся на практике, и много других неожиданных граблей. В статье я делюсь своим опытом побед и провалов на поприще асинхронного лимитирования запросов: с какими проблемами столкнулся, какие шишки набил и какие инсайты получил по ходу дела. В финале прихожу к решению, которое в итоге оказалось стабильным и продакшн-реди.

https://habr.com/ru/articles/983066/

#python #asyncio #rate_limiting #etl #async_pattern

Автостопом по граблям: асинхронное лимитирование запросов в Python

На днях мне прилетела задача, в которой нужно было вычерпывать данные по HTTP с такими вводными: Есть ограничение по количеству запросов в минуту Объём данных - миллионы записей Один запрос...

Хабр

Как мы загрузили историю 287 валютных пар с лимитом 8 запросов в минуту

Попробуйте найти исторические курсы для пар вроде «доллар к афгани» или «евро к таджикскому сомони». Данные либо платные, либо их просто нет в виде готового датасета. Мы решили эту проблему в рамках своего проекта, хотя единственный подходящий API диктовал суровые условия: 8 запросов в минуту и 5000 дней за раз. Получилось! Наш Python-скрипт аккуратно, чанк за чанком, собрал историю всех 287 пар за 4.5 часа, ни разу не превысив лимит. Теперь все эти данные — более миллиона строк — лежат в открытом доступе на GitHub. В статье делюсь техническими деталями, как выстроить такую загрузку, и уроками, которые мы извлекли.

https://habr.com/ru/articles/983024/

#Python #Data_Engineering #финансовые_данные #валютные_пары #ETLпроцесс #GitHub_Pages #opensource_датасет #исторические_котировки #rate_limiting #Twelve_Data_API

Как мы загрузили историю 287 валютных пар с лимитом 8 запросов в минуту

Граф связей 145 валют проекта AbsCur3 Граф валютных связей: 145 вершин, 287 рёбер — основа для расчёта абсолютных курсов Вы когда-нибудь пытались найти исторические данные по курсу доллара к афгани...

Хабр

Что скрывает ваш API Gateway

В современном мире цифровых сервисов и микросервисной архитектуры, предоставление внешнего API становится критически важной задачей для любого бизнеса. Хорошо спроектированный и надежный API — это ворота, через которые ваши данные и функциональность взаимодействуют с внешним миром: мобильными приложениями, веб‑сайтами, партнерскими сервисами и даже внутренними клиентами.

https://habr.com/ru/companies/otus/articles/944940/

#API_Gateway #микросервисы #микросервисная_архитектура #Spring_Boot #Spring_Cloud_Gateway #маршрутизация_запросов #аутентификация_и_авторизация #rate_limiting

Что скрывает ваш API Gateway

Автор статьи: Сергей Прощаев @sproshchaev Руководитель направления Java‑разработки в FinTech Введение В современном мире цифровых сервисов и микросервисной архитектуры, предоставление...

Хабр

Быстро — не всегда хорошо: рейтлимиты в мультикластерном окружении

Всем привет! Кажется, настало время поговорить о том, как внедрялись ограничители частоты запросов на бэкенд в Wildberries. В статье — о том, с какими трудностями мы столкнулись на этом благородном пути и как прошли через четыре схемы реализации — от простейшей in-memory до собственных gRPC-сервисов. Не обойдём вниманием и парочку лайфхаков ;) Например, с помощью рейтлимитов мы неожиданно решили проблему плавного отключения старых версий API. Меня зовут Дмитрий Виноградов , и я лид команды публичного API Wildberries. До этого почти 18 лет занимался промышленной автоматизацией в Schneider Electric — от программирования контроллеров и embedded-устройств до собственных SCADA-систем. Хочешь не хочешь, а научишься делать красивые интерфейсы :)

https://habr.com/ru/companies/wildberries/articles/932050/

#redis #go #rate_limiting #api #распределенные_системы #grpc

Быстро — не всегда хорошо: рейтлимиты в мультикластерном окружении

Всем привет! Кажется, настало время поговорить о том, как внедрялись ограничители частоты запросов на бэкенд в Wildberries. В статье — о том, с какими трудностями мы столкнулись на этом благородном...

Хабр

Почему простой парсер не всегда решает задачу: мой опыт интеграции спортивных API

В рамках собственной системы спортивной аналитики я хотел получить real-time доступ к данным о движении коэффициентов — в частности, с платформы pickingodds.com. У сервиса интересная фича — визуализация графика изменения линии по каждому событию. Это потенциально полезный источник вторичных сигналов (например, для обнаружения аномалий, связанных с резкой коррекцией маркет-мейкеров). Изначальный план был прост: интегрироваться по REST API, выкачивать данные раз в несколько минут, писать в TSDB, использовать далее для анализа и фичей в ML-пайплайнах. На практике же всё быстро ушло в зону нетривиальной оптимизации.

https://habr.com/ru/articles/930360/

#pickingodds #коэффициенты_ставок #асинхронный_парсинг #rate_limiting #aiohttp #Redis #Kafka #TimescaleDB #LightGBM #ML_фильтрация_событий

Почему простой парсер не всегда решает задачу: мой опыт интеграции спортивных API

Контекст В рамках собственной системы спортивной аналитики я хотел получить real-time доступ к данным о движении коэффициентов — в частности, с платформы pickingodds.com. У сервиса интересная фича —...

Хабр

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

https://habr.com/ru/companies/ddosguard/articles/908662/

#ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

В DDoS-Guard мы ежедневно защищаем клиентские сервисы от самых разных атак. Одним из ключевых инструментов защиты становится Rate Limiter — система, которая ограничивает количество запросов от одного...

Хабр

How To Limit Rate of Connections (Requests) in NGINX
https://www.tecmint.com/nginx-rate-limiting/

#nginx #http_429 #rate_limiting

How To Limit Rate of Connections (Requests) in NGINX

Rate limiting is a traffic management technique used to restrict the number of HTTP requests a client can make in a given period of time.

How To Limit Rate of Connections (Requests) in NGINX