2015-12-04 3 views
1

Одна функция на моем сайте позволяет зарегистрированным пользователям создавать календари для своей организации. Мы предоставляем динамически генерируемый канал iCal для этих календарей через URL-адрес с параметрами строки запроса. Любой пользователь может подписаться на эти каналы, введя предоставленный URL-адрес в Календарь Google, Outlook, iPhone и т. Д.Как отменить подписку на iCal (* .ics)?

Это работает достаточно хорошо в течение нескольких лет, но теперь у нас есть проблема с устаревшими или удаленными календарями. Если зарегистрированный пользователь значительно изменяет или удаляет свою учетную запись, календарь больше не будет существовать, а фид бесполезен. В настоящее время мы возвращаем ошибку «404 - Not Found» для этих запросов (недавно она изменилась с «400 - Bad Request»).

Мой вопрос, кроме возвращения 404, есть ли способ заставить подписчиков прекратить запрашивать плохой фид? Это similar question, где принятый ответ предполагает возвращение 404 или 410 и надеется, что клиенты увидят ошибку и вручную удаляют подписку.

Это пока не работает. Мы получаем ~ 100 тыс. Запросов на канал в час, а 30% из них - для удаленных календарей.

Неужели Google, Apple и другие не сдаются, когда они повторно получают 404 для фида? Как другие справились с этой проблемой?

Если это была проблема с загрязнением журналом, я бы не стал слишком беспокоиться об этом. Однако, поскольку каналы динамически генерируются, каждый запрос попадает в бэкэнд db. Обработка тривиальна и, по-видимому, не влияет на производительность, но ситуация может только ухудшиться.

Извините, если это относится к ServerFault. Хотя проблема влияет на мои серверы, я считаю, что решение является программным.

ответ

1

Я не верю, что есть простой ответ - я думаю, что это было задано раньше.

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

Возможно, вы можете создать и обновить список за пределами базы данных с неправильными URL-адресами и проверить подлинность скрипта и отскочить запрос до того, как он приблизится к базе данных? В основном старайтесь максимально эффективно решать проблему.

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

+0

Thanks @anmari. Я нашел еще один вопрос, который касался этого (и затем нашел другого после того, как я опубликовал), но надеялся, что к этому моменту может быть более окончательный ответ. Думаю, это не так много людей. – michaelg

Смежные вопросы