Помню, во времена дикой необузданной молодости, писал парсер для CDR файлов. Нужно было в ночь с 31-го на 1-е обработать и забиллинговать терабайт CDR записей (Call Details Record, телефония).
Сначала, как советовали пацаны из вейп-бара, написал на Ruby. Написал быстро, работало оно в среднем 3 дня на неслабом по тем временам серваке. Многопоточность не помогала, потому что GIL.
Висит уже третий год. Проблема реальная — попробуйте сделать загрузку файлов на S3 из андроидного стокового браузера. Сломано во всех популярных версиях вплоть до 4.2.
Привожу этот конкретный пример потому что сжег на нем часов тридцать пытаясь как-то обойти.
Генерация капчи плохая но не самая ресурсоемкая задача, которую вражеский бот может запустить. Пусть уж лучше капчи генерирует, то что ими защищено — куда тяжелее.
Согласен на 100%. Проблема то в том, что если она не разгадана, то не так-то просто это понять. Юзер (а тем более бот) вместо сабмита сомнительной капчи может уйти или запросить новую. Касаемо ситуации одновременных юзеров — скорее всего такое бывало, и не раз. Но бывало довольно редко и обновление страницы помогало, поэтому юзеры не жаловались. А сейчас все хуже было — у всех и обновление не помогает.
Нет, картинки на винт. А генерировать пачками можно, но лениво. Код получается сложнее наверное, хотя может и нет. Не пробовали потому что забоялись что все уснет.
Это уже высший пилотаж, не для вечернего хотфикса :) А если серьезно — то не могу сказать навскидку как лучше. Учитывать надо то требование, что сложность для нелюдей должна быть как можно более высока.
Решили так не делать. Непонятно что будет если в час наибольшей нагрузки число капч опустится до уровня 50% и начнется регенерация (а это вставки в базу, что есть дорого). Генерация «на лету» по крайней мере пропорциональна нагрузке, а крон отожрет все что сможет и сделать ему приоритет пониже не факт что получится — проблема не только в процессоре, но, главным образом, в базе.
День на день не приходится. Давным-давно один раз сделали и забыли на год. Режим аварийного полета сделали для дней адского наплыва пользователей. А сейчас популярности прибавилось и цифра которая тогда казалась достижимой только в экстраординарной ситуации стала ежедневной нормой. Прибавили конечно сейчас, когда пришлось опять к этому обратиться
Боимся не спамера, боимся бота, который автоматизировав некоторые операции может осуществлять ресурсоемкие операции пачками. У нас сервера потекут, а злоумышленник будет держать DDoS злобно хохоча.
С прода потерли уже, но всегда есть письма благодарных пользователей, в которых они обогащают наш лексикон! Во всех случаях капча в поле ввода — неправильная.
+1. Так и сделали сейчас. Только из-за того, что юзер не отгадавший капчу может в этом не сознаться, а просто уйти, мы удаляем (точнее помечаем) капчи как показанные при показе. Показанные больше не будут показаны.
Специально встал и перешёл к десктопу чтобы поставить все возможные плюсы. Профессионала видно сразу.
Сначала, как советовали пацаны из вейп-бара, написал на Ruby. Написал быстро, работало оно в среднем 3 дня на неслабом по тем временам серваке. Многопоточность не помогала, потому что GIL.
Переделал на C++, 40 минут.
Твоё лицо когда узнал что фронтендеры запускают webpack --watch чуть более чем всегда
Висит уже третий год. Проблема реальная — попробуйте сделать загрузку файлов на S3 из андроидного стокового браузера. Сломано во всех популярных версиях вплоть до 4.2.
Привожу этот конкретный пример потому что сжег на нем часов тридцать пытаясь как-то обойти.
Перезалил на хабрасторадж
IUJ
А третью перепутал, вот что хотел еще выложить:
Отгадка — VHD