Bot SereneReader

Co robi nasz program pobierający kanały, jak się identyfikuje i jak go zatrzymać.

Czym jest SereneReader

SereneReader to czytnik kanałów. Gdy ktoś zasubskrybuje Twój kanał RSS lub Atom, nasze serwery pobierają go w jego imieniu i wyświetlają nowe artykuły.

Gdy wpis w kanale nie ma obrazu, pobieramy stronę artykułu jednorazowo, aby odczytać tag og:image i wyświetlić podgląd. Pobieramy też ikonę Twojej witryny do panelu bocznego.

User-Agent

Każde żądanie z naszych serwerów identyfikuje się za pomocą tego ciągu:

SereneReader/1.0 (+https://serenereader.com/bot)

Co pobieramy

  • Adresy URL kanałów, które ktoś zasubskrybował.
  • Strony artykułów dla wpisów bez obrazu — zazwyczaj jednorazowo, analizując maksymalnie 1 MB HTML w poszukiwaniu tagu og:image.
  • Ikona Twojej witryny: ta zadeklarowana w kanale, /favicon.ico, /apple-touch-icon.png lub /apple-touch-icon-precomposed.png.

Nie indeksujemy witryn ani nie podążamy za linkami ze stron artykułów. Poza subskrybowanymi kanałami pobieramy kanał z naszego katalogu Discover, gdy zalogowany użytkownik wyświetla jego podgląd i nie mamy dla niego zapisanych artykułów, a także gdy sprawdzamy kanał przed dodaniem go do katalogu.

Jak często

Kanały są odświeżane zgodnie z harmonogramem. Gdy serwer zwraca nagłówek ETag lub Last-Modified, kolejne żądanie zawiera If-None-Match lub If-Modified-Since — niezmieniony kanał kosztuje wtedy jedynie odpowiedź 304 bez treści.

Zazwyczaj pobieramy każdą stronę artykułu jednorazowo, w celu uzyskania obrazu podglądu. Trwały błąd, taki jak 404, jest zapamiętywany przez 30 dni. Tymczasowy błąd, np. przekroczenie limitu czasu lub błąd 500, jest ponawiany maksymalnie trzy razy — po około 30 sekundach, 1 minucie i 2 minutach — po czym strona jest pomijana przez co najmniej godzinę.

Odpowiedź 429 lub 503 sygnalizuje nam konieczność zwolnienia. W przypadku kanałów każde nieudane odświeżenie opóźnia kolejne — zaczynając od 15 minut i podwajając czas oczekiwania do jednego dnia; przy 429 czekamy też mniej więcej tyle, ile wskazuje nagłówek Retry-After, lub dłużej. Dla stron artykułów 429 lub 503 traktujemy jako błąd tymczasowy, więc możemy ponowić próbę do trzech razy przez około trzy i pół minuty. Następnie czekamy tyle, ile wskazuje Retry-After — maksymalnie siedem dni, lub siedem dni, jeśli nagłówek nie zostanie przesłany.

robots.txt

Zanim nasi zaplanowani pobierający zażądają strony artykułu lub ikony witryny, odczytują plik robots.txt i stosują reguły Disallow oraz crawl-delay dla grupy User-agent: SereneReader, z powrotem do grupy *. Żądanie ikony wykonywane przy pierwszym dodaniu kanału nie sprawdza pliku robots.txt.

Adresy URL kanałów są traktowane inaczej. Kanał jest pobierany w imieniu użytkownika, który go subskrybuje, dlatego postępujemy jak Feedfetcher Google'a: reguły Disallow grupy * nie mają do niego zastosowania. Grupa User-agent: SereneReader blokująca ścieżkę kanału jest nadal respektowana, również przy pierwszym dodaniu kanału. Nasi zaplanowani pobierający stosują też crawl-delay dla kanałów — do 60 sekund między żądaniami (dłuższe opóźnienie jest traktowane jako 60 sekund). Jednorazowe pobranie przy pierwszym dodaniu kanału oraz nasze sprawdzenia przed dodaniem kanału do katalogu Discover nie czekają na crawl-delay.

Jeśli plik robots.txt jest niedostępny z powodu błędu serwera, traktujemy to jako zgodę na pobranie. Subskrypcja to wyraźna zgoda czytelnika — niestabilny plik robots nie powinien blokować jego kanału.

Jak nas zablokować

Zablokuj lub ogranicz ruch dla powyższego User-Agenta na serwerze lub zaporze sieciowej, albo odrzuć nas w pliku robots.txt, tworząc grupę z naszą nazwą. Ogólna reguła dla wszystkich botów nie blokuje pobierania kanałów — ta tak:

User-agent: SereneReader
Disallow: /

Zablokowanie adresu URL kanału wstrzyma odświeżanie dla wszystkich subskrybentów, nie tylko jednego czytelnika.

Podpisy żądań

Żądania są podpisywane przy użyciu Web Bot Auth (sygnatury wiadomości HTTP, RFC 9421), dzięki czemu możesz zweryfikować ich pochodzenie. Nasze klucze publiczne są dostępne pod adresem:

https://serenereader.com/.well-known/http-message-signatures-directory

Wychodzące adresy IP

Zaplanowane odświeżenia kanałów, podglądy Discover i pobieranie obrazów podglądu pochodzą z tych stałych adresów. Część żądań pochodzi z innych adresów: sprawdzenie kanału i pobranie ikony przy pierwszym dodaniu kanału wykonywane są z naszych serwerów WWW, sprawdzenia przed dodaniem kanału do katalogu Discover — z naszych narzędzi administracyjnych, a nasze środowisko testowe wysyła żądania z tym samym User-Agent. Lista dozwolonych adresów IP oparta wyłącznie na adresach odrzuci te żądania.

162.220.234.241
152.55.180.242
152.55.180.243

Lista w formacie maszynowym/bot/ips.json

Kontakt

Masz pytania dotyczące naszego ruchu lub chcesz zgłosić coś do poprawki? Napisz do nas.