Yandex.Disk zakazał korzystanie z narzędzia open source rclone

Tło

Cześć, Habr!

Do napisania tego posta skłonił mnie dość dziwny błąd, który wczoraj wieczorem na moim laptopie z systemem Linux (tak, jestem jednym z tych dziwnych ludzi, którzy używają GNU/Linux na laptopie) otrzymałem zamiast zawartości swojego Yandex.Disku:

$ ls -l /mnt/yadisk
ls: reading directory '.': Błąd wejścia/wyjścia
total 0

Pierwsza myśl: sieć padła, nic strasznego. Ale przy próbie ponownego zamontowania katalogu pojawił się nowy błąd:

$ sudo umount /mnt/yadisk && rclone mount --timeout 30m ya:/ /mnt/yadisk
2020/02/21 20:54:26 ERROR : /: Dir.Stat error: [401 - UnauthorizedError] Nieautoryzowane (Unauthorized).

To już było dziwne. Token wygasł? Nie ma sprawy, autoryzuję ponownie!

$ rclone config
... (pomińmy całą tutaj zawartość terminala) ..

Po przejściu na stronę i próbie autoryzacji otrzymuję już bardziej konkretną wiadomość:

Ta aplikacja została zablokowana z powodu szkodliwych działań, więc dostęp jest zabroniony (unauthorized_client).

Pierwsza myśl: coooo?

O rclone

Trochę informacji:
rclone — dość znane otwarte narzędzie do pracy z chmurami (wielokrotnie raz, dwa, trzy wspomniano na Habra. Autor określa to jako "rsync dla chmury", co w pełni oddaje istotę. Ale to nie wszystko: obok funkcji rsync może również montować dyski, pełniąc funkcję ncdu (co zresztą pozwoliło mi kiedyś odkryć błędne obliczenie wolnego miejsca na Yandex.Disk i skutecznie rozwiązać ten problem przez wsparcie techniczne), a także wiele innych. Narzędzie wspiera zarówno dziesiątki chmur, jak i bardziej tradycyjne protokoły – WebDAV, FTP, rsync i inne. Do dostępu do Yandex.Disk narzędzie wykorzystuje oficjalne publiczne API Dysku.

Narzędzie jest naprawdę unikalne i (moim zdaniem) należy do tej klasy programów, które instaluje się raz, a korzyści płyną stale.

Co się stało?

Szukając w Google od razu zrozumiałem, że nie jestem sam. Istnieje błąd na oficjalnym GitHubie, a także dyskusja na oficjalnym forum.
Podsumowanie: client_id narzędzia zostało zablokowane przez Yandex.Disk, przez co nie można się już autoryzować. Można spróbować zmienić client_id, ale nie ma pewności, że ta sama fate nie spotka nowego ID.
Odpowiedź wsparcia została opublikowana na tym samym forum.:

Program Rclone umożliwia korzystanie z Yandex.Disk jako komponentu infrastrukturalnego, ale Yandex.Disk to usługa osobista, która nie jest zaprojektowana do realizacji takich zadań. Dlatego nie wspieramy współpracy Rclone z Yandex.Disk.

"Komponent infrastrukturalny"? Skoro nie można, to prawdopodobnie jest to opisane w regulaminie, pomyślałem, i nic takiego w regulaminie samego dysku ani jego publicznego API nie znalazłem.

Dobra, napiszemy do wsparcia.
Pierwsza odpowiedź przychodzi dokładnie taka sama jak ta, która została opublikowana wyżej (o "komponencie infrastrukturalnym"). Ok, nie jesteśmy dumni.

Dalsza korespondencja z wsparciem

Ja:

Czy mógłbyś mi powiedzieć, które zasady usługi są naruszane?
Zapoznałem się z warunkami korzystania z Yandex.Disk i nie ma żadnych zakazów na użycie "jako komponentu infrastrukturalnego".

Co więcej, nie mogę używać narzędzia z osobistego laptopa do pracy z dyskiem. To już zupełnie nie kwalifikuje się jako "komponent infrastrukturalny". Klient natywny dysku jest straszny, wybacz.

Wsparcie:

Sergiusz, chodzi o to, że Yandex.Dysk to przede wszystkim usługa osobista, która nie jest przeznaczona do automatycznego tworzenia kopii zapasowych.
Możesz synchronizować dane między swoim komputerem a Yandex.Dyskiem, a także korzystać z interfejsu internetowego Dysku do przesyłania plików i ich edytowania.

Jeśli z jakiegoś powodu nie jesteś zadowolony z naszego programu, daj nam znać. Zwykle zwracamy uwagę na opinie użytkowników przy wydawaniu aktualizacji produktu.

Dokumenty regulujące korzystanie z usługi są dostępne w tym miejscu, w tym 'Umowa użytkownika serwisów Yandex', opublikowana pod adresem: https://yandex.ru/legal/rules/, a także 'Warunki korzystania z usługi "Yandex.Dysk"': https://yandex.ru/legal/disk_termsofuse

Aby rozwiązywać problemy wymagające dużych mocy obliczeniowych, zalecamy korzystanie z Yandex.Cloud. To inna usługa chmurowa Yandex, stworzona z myślą o potrzebach biznesowych. Więcej informacji o Yandex.Cloud znajdziesz tutaj: https://cloud.yandex.ru

Ja:

Nie odpowiedziałeś na moje pytanie. Proszę, powiedz mi, który punkt regulaminu usługi narusza użycie rclone? Dokładnie zapoznałem się z zasadami podanym w twoim linku (jeszcze przed tym, jak mi go wysłałeś).

Niedawno napisałeś post, że Yandex w pełni wspiera OpenSource, a bez OpenSource Yandex i współczesny internet nie istnieją (https://habr.com/ru/post/480090/).

A teraz blokujesz narzędzie OpenSource z powodu bezpodstawnego powodu.

A tak w ogóle, program nie realizuje "automatycznego przesyłania kopii zapasowych", program jest przeznaczony do pracy z chmurami, w tym do synchronizacji danych między komputerem a Yandex.Dyskiem. I to jest mój główny przypadek użycia narzędzia, który teraz nie jest dostępny.

Wsparcie:

Zgodnie z punktem 3.1. „Umowy użytkownika” Yandex ma prawo ustanawiać ograniczenia w korzystaniu z usług dla wszystkich Użytkowników lub dla wybranych kategorii Użytkowników (w zależności od lokalizacji Użytkownika, języka, w którym świadczona jest usługa itp.), w tym: obecność/brak określonych funkcji usługi, okres przechowywania wiadomości e-mail w usłudze Yandex.Mail, wszelkie inne treści, maksymalna liczba wiadomości, które mogą zostać wysłane lub odebrane przez jednego zarejestrowanego użytkownika, maksymalny rozmiar wiadomości e-mail lub przestrzeni dyskowej, maksymalna liczba zapytań do usługi w określonym czasie, maksymalny okres przechowywania treści, specjalne parametry przesyłanego materiału itp. Yandex może zablokować automatyczne zapytania do swoich usług, a także zaprzestać przyjmowania jakichkolwiek informacji generowanych automatycznie (na przykład spamu e-mailowego).

Użytkownik zostaje również o tym poinformowany w punkcie 4.6. „Warunków korzystania z Yandex.Dysku”.

Zauważ, że „Zasady korzystania z Yandex.Dysku” nakładają na Użytkownika obowiązek działania w dobrej wierze oraz powstrzymania się od nadużywania funkcji Usługi. Użytkownik zobowiązuje się także do unikania organizowania masowej wymiany plików przy użyciu funkcji Usługi.

Yandex ma prawo wprowadzać zasady, limity i ograniczenia mające na celu zapobieganie, ograniczanie i zwalczanie masowego udostępniania plików zgodnie z zasadami punktu 4.5 niniejszych „Zasad”.

Ostatnia odpowiedź wprowadziła jasność. Szczególnie pierwsze dwa akapity, które odnoszą się do punktu 3.1 „Umowy użytkownika” Yandexu oraz punktu 4.6 „Zasad korzystania z Yandex.Dysku”. Tekst 4.6 nie jest tutaj przytaczany, więc podam go:

4.6. Yandex zastrzega sobie prawo do ustalania wszelkich zasad, limitów i ograniczeń (technicznych, prawnych, organizacyjnych lub innych) dotyczących korzystania z Usługi i może je zmieniać według własnego uznania, bez uprzedniego powiadomienia Użytkownika. W przypadkach, gdy nie jest to zabronione przez prawo, wspomniane zasady, limity i ograniczenia mogą się różnić w zależności od różnych kategorii Użytkowników.

Wnioski?

Niedawno szanowany bobuk w swoim poście tutaj na Habrze napisał, że Yandex uważa, że:

W Yandexie wierzymy, że nowoczesny internet nie może istnieć bez kultury open source i ludzi, którzy inwestują swój czas w rozwój oprogramowania z otwartym kodem.

A w praktyce wychodzi zupełnie inaczej. Doskonałe narzędzie jest blokowane za coś, co nie jest zabronione regulaminem usługi. Za to, że narzędzie umożliwia korzystanie z otwartego publicznego API Dysku zgodnie z jego przeznaczeniem — do przesyłania plików. Blokują nie za naruszenie zasad usługi, lecz dlatego, że mogą.
Dziwne jest to, że nie zablokowano konkretnych naruszycieli zasad (których zasady również są niejasne; w zasadach nie ma zakazu używania dysku do kopii zapasowych). Zablokowano narzędzie, którego funkcja tworzenia kopii zapasowej jest tylko jedną z wielu.

Czym jest komponent infrastrukturalny i dlaczego nie można go używać z dyskiem, też nie jest jasne. Nawet przeglądarka może być używana jako "komponent infrastrukturalny"; czy nie warto byłoby zabronić korzystania z dysku w przeglądarce?

Co robić?

Na razie trzeba korzystać ze swojego client_id i żyć dalej. Jednak, sądząc po odpowiedzi wsparcia technicznego, można spodziewać się kontynuacji polowania na czarownice i zablokowania również innych client_id, user-agent rclone lub nawet jakichś heurystycznych sposobów na zablokowanie narzędzia.

P.S. Szczerze mam nadzieję, że to był zwykły błąd lub nieporozumienie. W Yandexie pracują świetni specjaliści (z wieloma znam się osobiście) i wśród nich, jestem pewny, są użytkownicy rclone.

Aktualizacja 24.02.2020:
W wydaniu 690 podcastu Radio-T, którego współprowadzącym jest ceniony Bobuk, omawiana była blokada rclone. Początek o 1:51:40.

Źródło: habr.com

Kup niezawodny hosting dla stron z ochroną przed DDoS, VPS VDS serwery 🔥 Kup niezawodny hosting dla stron z ochroną przed DDoS, VPS VDS serwery | ProHoster