Yandex.Disk zakazał użycia narzędzia open source rclone

Tło

Cześć, Habr!

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

$ ls -l /mnt/yadisk
ls: błąd odczytu katalogu '.': błąd wejścia/wyjścia
total 0

Pierwsza myśl: sieć się rozłączył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] Unauthorized (Nieautoryzowany.)

To już było dziwne. Czy token stracił ważność? Nic strasznego, autoryzuję się ponownie!

$ rclone config
... (pomijam całą resztę wyjścia z terminala) ..

Po przejściu do wersji webowej i próbie zalogowania się tam otrzymuję bardziej konkretne komunikaty:

Ta aplikacja została zablokowana za działalność złośliwą, dlatego dostęp jest zabroniony (unauthorized_client).

Pierwsza myśl: cooo?

O rclone

Trochę informacji:
rclone — dość znane otwarte narzędzie do pracy z chmurami (wielokrotnie raz, dwa, trzy wspomniane na Habrze). Autor nazywa to "rsync dla przechowywania w chmurze", co jest dość trafne. Ale to nie ogranicza jego funkcjonalności: oprócz funkcji rsync, może również montować dyski, pełnić funkcję ncdu (co, nawiasem mówiąc, pozwoliło mi pewnego razu wykryć błędne obliczenia wolnego miejsca na Yandex.Dysku i skutecznie rozwiązać ten problem przez wsparcie techniczne), a także wiele innych. Narzędzie obsługuje zarówno dziesiątki chmur, jak i bardziej tradycyjne protokoły — WebDAV, FTP, rsync i inne. Do uzyskania dostępu do Yandex.Dysku narzędzie wykorzystuje oficjalne publiczne API Dysku.

Narzędzie jest naprawdę unikalne i (moim zdaniem) stanowi ten rodzaj oprogramowania, które instalujesz raz, a korzyści z niego płyną ciągle.

Co się stało?

Przeglądając Google, od razu zrozumiałem, że nie jestem sam. Istnieje błąd na oficjalnym GitHubie, a także dyskusja na oficjalnym forum.
Krótka charakterystyka: client_id narzędzia został zablokowany przez Yandex.Dysk, przez co nie można się już autoryzować. Można spróbować zmienić client_id, ale nie ma pewności, że nowy id nie spotka tego samego losu.
Odpowiedź wsparcia została opublikowana na tym samym forum:

Chodzi o to, że program Rclone pozwala korzystać z Yandex.Dysku jako komponentu infrastrukturalnego, a Yandex.Dysk to osobisty serwis, który nie jest zaprojektowany do rozwiązywania takich zadań. Dlatego nie wspieramy pracy zestawienia Rclone — Yandex.Dysk.

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

nie znalazłem.
Dobrze, napiszemy do wsparcia.

Pierwsza odpowiedź przylatuje 1 w 1 to, co opublikowane powyżej (o "komponencie infrastrukturalnym"). Ok, nie jesteśmy dumni.

Dalsza korespondencja z wsparciem

Ja:
Może powiedzielibyście, które zasady usługi to narusza?

Przeanalizowałem warunki korzystania z Yandex.Dysku i nie ma tam żadnych zakazów dotyczących używania "jako komponentu infrastrukturalnego".

Wsparcie:

Co więcej, nie mogę korzystać z narzędzia z prywatnego laptopa do pracy z dyskiem. To już zupełnie nie podpada pod "komponent infrastrukturalny". Klient dysku jest okropny, wybaczcie.
Sergey, chodzi o to, że Yandex.Dysk to przede wszystkim osobisty serwis, który nie jest zaprojektowany do automatycznego przesyłania kopii zapasowych.

Możecie synchronizować dane między swoim komputerem a Yandex.Dyskiem, a także korzystać z interfejsu webowego Dysku do przesyłania plików i pracy z nimi.

Jeśli z jakiegoś powodu nie jesteś zadowolony z naszego programu, proszę, wyraź to. Tradycyjnie słuchamy opinii użytkowników przy wydawaniu aktualizacji produktu. https://yandex.ru/legal/rules/Możecie zapoznać się z dokumentami regulującymi korzystanie z usługi, w szczególności "Umową użytkownika serwisów Yandex", opublikowaną pod adresem: https://yandex.ru/legal/disk_termsofuse

, a także "Zasadami korzystania z usługi 'Yandex.Dysk'": https://cloud.yandex.ru

Dalsza korespondencja z wsparciem

Nie odpowiedzieliście na moje pytanie. Proszę, powiedzcie, który punkt zasad usługi narusza korzystanie z rclone? Dokładnie przeanalizowałem zasady pod waszym linkiem (jeszcze przed tym, jak mi je wysłaliście).

Niedawno pisałeś post, że Yandex wspiera OpenSource na wszelkie sposoby, a nowoczesny internet nie istniałby bez OpenSource Yandexa.https://habr.com/ru/post/480090/).

A teraz blokujesz OpenSource'owe narzędzie z powodu wymyślonego powodu.

Przy okazji, program nie realizuje "automatycznego ładowania kopii zapasowych"; jest przeznaczony do współpracy z chmurami, w tym do synchronizacji danych między komputerem a Yandex.Dyskiem. I to jest mój główny przypadek użycia tego narzędzia, który teraz jest niedostępny.

Wsparcie:

Zgodnie z punktem 3.1. "Umowy użytkownika" Yandex ma prawo nałożyć ograniczenia w korzystaniu z usług dla wszystkich Użytkowników lub dla wybranych kategorii Użytkowników (w zależności od miejsca pobytu Użytkownika, języka, w jakim usługa jest świadczona itp.), w tym: obecność/brak poszczególnych funkcji usługi, czas przechowywania wiadomości e-mail w usłudze Yandex.Poczta, jakiegokolwiek innego kontentu, maksymalna liczba wiadomości, które mogą być wysłane lub otrzymane przez jednego zarejestrowanego użytkownika, maksymalny rozmiar wiadomości e-mail lub przestrzeni dyskowej, maksymalna liczba zapytań do usługi w podanym okresie czasu, maksymalny czas przechowywania treści, specjalne parametry przesyłanego kontentu itp. Yandex może zabronić automatycznego dostępu do swoich usług, jak również wstrzymać przyjmowanie jakichkolwiek informacji generowanych automatycznie (np. spamu e-mailowego).

Użytkownik jest również o tym informowany w punkcie 4.6. "Warunków korzystania z Yandex.Dysku".

Zauważ, że "Warunki korzystania z Yandex.Dysku" nakładają na Użytkownika obowiązek działania w dobrej wierze i powstrzymywania się od nadużywania funkcji Usługi. Użytkownik zobowiązuje się też do powstrzymywania się od organizowania masowej wymiany plików przy użyciu funkcji Usługi.

Yandex ma prawo stosować zasady, limity i ograniczenia mające na celu zapobieganie, ograniczanie i zwalczanie masowej wymiany plików zgodnie z zasadami punktu 4.5. niniejszych "Warunków".

Ostatnia odpowiedź wprowadziła jasność. Szczególnie pierwsze dwa akapity z odniesieniem do pkt 3.1. „Umowy użytkownika” Yandeksu i pkt 4.6. „Warunków korzystania z Yandex.Dysku”. Tekst 4.6 tutaj nie został podany, zacytuję:

4.6. Yandex zastrzega sobie prawo do ustalania jakichkolwiek 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 wcześniejszego powiadomienia Użytkownika. W przypadkach, gdy nie jest to zabronione przez przepisy prawne, wymienione zasady, limity i ograniczenia mogą być różne dla różnych kategorii Użytkowników.

Wnioski?

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

Uważamy w Yandex, ż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 sytuacja wygląda zupełnie inaczej. Doskonałe narzędzie jest blokowane za coś, co nie jest zabronione przez zasady usługi. Za to, że narzędzie umożliwia korzystanie z otwartego publicznego API Dysku zgodnie z jego przeznaczeniem — przesyłanie plików. Blokują nie za naruszenie zasad usługi, ale dlatego, że mogą.
Dziwi także fakt, że zablokowane nie zostały konkretne osoby naruszające zasady (które też są niejasne, w zasadach korzystania z dysku nie ma zakazu tworzenia kopii zapasowych). Zablokowane zostało narzędzie, w którym funkcja tworzenia kopii zapasowych jest tylko jedną z wielu.

Co to jest komponent infrastrukturalny i dlaczego nie można ich używać z dyskiem, też nie jest jasne. Nawet przeglądarka może być używana jako "komponent infrastrukturalny", czy zatem nie warto zakazać korzystania z dysku w przeglądarkach?

Co robić?

Na razie korzystam ze swojego client_id i żyję dalej. Ale, sądząc po odpowiedzi pomocy technicznej, można spodziewać się dalszych poszukiwań czarownic i blokad także innych client_id, user-agent rclone lub, nawet, jakieś heurystyczne sposoby blokowania narzędzia.

P.S. Szczerze mam nadzieję, że to była po prostu zwykła pomyłka lub nieporozumienie. W Yandex pracują doskonałe specjalistki (z wieloma z nich znam się osobiście) i jestem pewien, że są wśród nich użytkownicy rclone.

Aktualizacja 24.02.2020:
W w wydaniu 690 podcastu Radio-T, którego współprowadzącym jest również szanowany Bobuk, omawiano blokadę rclone. Początek o 1:51:40.

Źródło: habr.com

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