Co opuszcza Twoją maszynę, a co nie
To plik faktury budzi obawy. Nie opuszcza przeglądarki. Ta strona opisuje resztę obrazu: kilka żądań, które docierają do serwera, kto je widzi i jak długo trwają.
Administrator danych
Nugroho Setiaji, info@tally-stick.com. Pełna tożsamość jest opublikowana w niemieckim impressum, gdzie oświadczenie administratora jest wymagane prawem. Nie ma inspektora ochrony danych, bo to działalność jednoosobowa i nie jest on wymagany.
Plik faktury
Parsowanie działa w Twojej przeglądarce, w języku JavaScript. Plik nie jest wysyłany ani kopiowany do magazynu obiektów. Dotyczy to każdego narzędzia na tej stronie, w tym czytania zeskanowanego PDF-a opisanego niżej. Są dwie rzeczy, które plik może po sobie zostawić, obie wyczerpująco opisane dalej: jeśli odczyt się nie powiedzie, dziennik błędów przechowuje opis odczytu i pierwsze linie, które czytnik zdołał odczytać ze strony, a jeśli przy tym błędzie naciśniesz wysłanie pliku, sam plik trafia do skrzynki naprawczej.
Jedyny wyjątek to raport, który wysyłasz sam: gdy pliku nie da się odczytać, strona proponuje dołączenie dokładnie tego pliku do zgłoszenia błędu, żeby dało się naprawić czytnik. Ta propozycja stoi pod komunikatem błędu wszędzie tam, gdzie upuszczasz plik, oraz na konwerterze formatów, gdy konwersja się nie powiedzie. Załącznik wędruje dopiero po naciśnięciu tego przycisku, trafia do skrzynki naprawczej operatora, jest czytany wyłącznie w celu naprawy czytnika, nigdy nie jest sprzedawany, nigdy nikomu nie jest udostępniany i jest usuwany po zakończeniu naprawy.
Czytanie zeskanowanego PDF-a
PDF do XRechnung wypełnia formularz ze zwykłego PDF-a faktury. PDF z warstwą tekstową jest czytany prosto z pliku. PDF, który jest tylko obrazem faktury, skanem albo fotografią, jest przepuszczany przez rozpoznawanie tekstu, a to rozpoznawanie również działa w karcie Twojej przeglądarki.
W tym celu przy upuszczeniu pliku strona pobiera z CDN jsDelivr dwie biblioteki open source, pdf.js i Tesseract.js, razem z pakietem językowym rozpoznawania. To pobranie mówi jsDelivr Twój adres IP i user agent, tak jak przy ładowaniu każdego skryptu zewnętrznego. Twoja faktura nie jest częścią żądania: wędruje samo żądanie biblioteki, a odczyt dzieje się potem na Twojej maszynie. Jeśli wolisz w ogóle nie korzystać z CDN, aplikacja desktopowa robi to samo, nie pobierając niczego w czasie działania.
Co serwer faktycznie widzi
- Żądania stron. Hostingiem serwisu jest Cloudflare. Ich edge zapisuje żądanie tak samo jak każdy host HTTPS (IP, URL, user agent, czas).
- Zliczanie wizyt. Cloudflare Web Analytics działa na każdej stronie: mały skrypt raportuje URL, stronę odsyłającą i czas ładowania. Nie ustawia żadnego ciasteczka, nie czyta żadnego ciasteczka i nie buduje fingerprinta ani identyfikatora, więc jednego odwiedzającego nie da się śledzić ze strony na stronę ani z dnia na dzień. Istnieje, bo własny dziennik żądań hosta liczy crawlery jako odwiedzających, a według tej miary większość ruchu na tej stronie to nie ludzie. Żadna część faktury nie jest w to zaangażowana: skrypt widzi adres strony, nigdy to, co otwarto na tej stronie. Cloudflare jest już hostingodawcą, więc to nie dodaje nowej firmy do listy poniżej. Jeśli przeglądarka go zablokuje, nic na stronie się nie psuje, a wizyta po prostu nie jest liczona.
- Licznik konwersji. Po udanym parsowaniu strona wysyła liczbę (ile plików właśnie się udało, z ograniczeniem) do
/api/count. Serwer przechowuje jedną liczbę całkowitą. Bez nazwy pliku, bez faktury, bez ciasteczek. - Pomiar stron i czasu. Właściciel musi też wiedzieć, które strony się obracają: gdy strona jest otwierana albo ukrywana, wysyła do
/api/visitswój adres, a przy opuszczeniu liczbę sekund, przez jakie pozostała otwarta. Dni są zbijane w sumy na stronę, pięć zgrubnych przedziałów czasu i zgrubną klasę strony odsyłającej. Aby szacować gości dziennie bez przechowywania czegokolwiek o kimkolwiek, adres jest haszowany razem z kluczem po stronie serwera i datą dnia, a hash służy wyłącznie do zapalenia dwóch bitów w liczniku: nigdzie go nie zapisujemy, nie da się z niego wrócić do adresu, i żadne ciasteczko ani identyfikator nie jest ustawiane. Jeśli żądanie nigdy nie dotrze, strona działa dokładnie tak samo. - Zliczanie błędów. Gdy pliku nie da się odczytać, strona wysyła do tego samego punktu końcowego informację, które narzędzie było otwarte, stały kod nazywający kontrolę, która odmówiła przyjęcia pliku, rozszerzenie pliku i przedział rozmiaru. Jest to po to, żeby format, który nigdy nie działa, dało się znaleźć i naprawić bez czekania, aż ktokolwiek to zgłosi, a bezpłatne narzędzie to ostatnie miejsce, gdzie zgłasza się wady. Kody to zamknięta lista: bez nazwy pliku i bez treści faktury. Samo parsowanie nadal dzieje się wyłącznie w Twojej przeglądarce, a plik nadal nigdy nie jest wysyłany.
- Dziennik błędów. Kod mówi tylko tyle, że plik się nie udał, i nic o tym dlaczego, a wady, której nikt nie widzi, nikt nie naprawia. Dlatego gdy odczyt się nie powiedzie, i tylko wtedy, strona wysyła też do
/api/error: komunikat, który Ci pokazano, liczbę stron dokumentu, liczbę słów na nich, czy trzeba było użyć OCR, jak długo trwał odczyt, jaki program zapisał plik według jego własnych metadanych oraz do pierwszych 4000 znaków, które czytnik zdołał odczytać ze strony. Na fakturze, której nie udało się sparsować, ta ostatnia część to tekst faktury i jest to jedyna rzecz, która kiedykolwiek mówi, jaki nagłówek albo układ pokonał czytnik. To nie jest plik: bez załącznika, bez obrazu, bez drugiej strony i bez nazwy pliku. Wiersze są przechowywane do roku, czyta je jedna osoba w celu naprawy czytnika, nigdy nie są sprzedawane i nigdy nikomu nie są udostępniane. Napisz na powyższy adres, żeby usunąć wpis. - Wysłana opinia. Jeśli użyjesz formularza, serwer przechowuje wiadomość, opcjonalny adres e-mail, krótki kontekst techniczny (treść błędu, nazwę pliku, rozmiar pliku), URL strony, Twój user agent i znacznik czasu. Sama faktura nie jest dołączana. Kopie leżą w magazynie klucz-wartość do roku i są wysyłane na powyższy adres, żeby móc odpowiedzieć.
- Preferencja motywu. Jasny albo ciemny zapisywany jest w
localStoragena Twoim urządzeniu. Nie jest wysyłany na serwer. - Podpisany zapis EN 16931. Tylko gdy subskrybent Team naciśnie przycisk. Strona wysyła SHA-256 pliku, identyfikator zestawu reguł, kody ustaleń i ich liczbę oraz numer faktury i datę wystawienia do
/api/sub/report. Sam plik faktury nie jest wysyłany. Serwer podpisuje ten skrót i zwraca go; nie przechowuje niczego z żądania.
Ciasteczka
Konwerter nie ustawia ciasteczka śledzącego. Cloudflare może ustawiać ciasteczka należące do hosta (na przykład żeby odróżnić człowieka od bota). Nie używam ich do Twojej identyfikacji.
Podstawa prawna i przechowywanie
Hosting stron, licznik konwersji i pomiar stron i czasu są niezbędne do prowadzenia usługi (prawnie uzasadniony interes, którym jest utrzymanie bezpłatnego narzędzia online i rzetelna informacja o skali jego użycia). Opinia jest przetwarzana, bo poproszono o odpowiedź albo zgłoszono wadę (zgoda / żądanie podobne do umowy). Możesz napisać na powyższy adres, żeby usunąć przechowywany wpis opinii. Dzienniki hosta podlegają własnej polityce przechowywania Cloudflare.
Podmioty przetwarzające
Cloudflare, Inc. zapewnia DNS, TLS, hosting, opisane wyżej zliczanie wizyt i magazyn klucz-wartość. Wysyłka opinii pocztą idzie przez małego Workera, który może wysyłać wyłącznie na adres operatora. Nie ma sieci reklamowej i faktura nikomu nie jest udostępniana.
Twoje prawa
Jeśli RODO ma zastosowanie do opisanego wyżej przetwarzania, możesz poprosić o dostęp, sprostowanie, usunięcie, ograniczenie albo kopię danych, oraz możesz złożyć skargę do organu nadzorczego. Napisz na info@tally-stick.com.