Środki techniczne i organizacyjne

Środki zgodnie z art. 32 RODO, które LW IT Solutions Company Lukas Wójcik wdraża w odniesieniu do Answely. Niniejszy dokument stanowi załącznik 2 do umowy powierzenia przetwarzania danych i jednocześnie opisuje środki dotyczące danych, za które operator sam odpowiada jako administrator.

1. Zakres stosowania i zasada

Środki obowiązują we wszystkich częściach Answely: strona internetowa answely.com i konto klienta, usługa odpowiedzi pod adresem api.answely.com, skrypt answely.js, indekser, komputery z modelem językowym i modelem osadzeń oraz kopie zapasowe i monitorowanie.

Operator: LW IT Solutions Company Lukas Wójcik, al. Tadeusza Kościuszki 80/82, lok. 301, 90-437 Łódź, Polska, numer VAT UE PL7252266190.

Zasada: To, co tu opisano, jest wdrożone i potwierdzone w kodzie lub konfiguracji. Tam, gdzie coś jest przygotowane, ale jeszcze nie działa, lub celowo go brakuje, jest to wyraźnie wskazane, zamiast sugerowane między wierszami. Liczby w niniejszym dokumencie są przy każdej zmianie automatycznie porównywane z kodem i konfiguracją.

Środki opisują stan, z którym Answely zostaje uruchomione: sprawdzony w środowisku deweloperskim i przeniesiony do konfiguracji produkcyjnej. Tam, gdzie środowisko deweloperskie i produkcyjne się różnią, zostało to wskazane.

2. Poufność

2.1 Kontrola dostępu fizycznego

Answely działa na własnym sprzęcie w Łodzi w Polsce. W działaniu usługi nie uczestniczy żaden dostawca centrum danych, usług chmurowych ani hostingu. Strona internetowa, aplikacja konta, usługa odpowiedzi, bazy danych i Redis działają na własnym serwerze za własnym routerem; model językowy – nasza własna AI, hostowana samodzielnie – działa na dwóch własnych serwerach, a model osadzeń również na własnych komputerach, wszystkie w tej samej sieci wewnętrznej i w tym samym miejscu. Na tym samym sprzęcie operator prowadzi inne własne usługi (m.in. MousePlayer i reactive.chat).

Serwery są eksploatowane we własnym zakresie w zamkniętych pomieszczeniach w Łodzi. Dostęp ma wyłącznie sam właściciel. Pomieszczenie jest zamykane na klucz i objęte monitoringiem wizyjnym; inne osoby – także wynajmujący lub serwis sprzątający – nie mają dostępu. Dokładny adres lokalizacji celowo nie jest podawany.

2.2 Kontrola dostępu do systemów

  • Dostęp do konta wyłącznie za pomocą osobistego konta użytkownika i hasła. Hasła są przechowywane wyłącznie jako solony skrót przy użyciu standardowej metody PHP, nigdy jawnym tekstem.
  • Po kilku nieudanych próbach logowanie z tego samego adresu jest tymczasowo blokowane (ustawienie domyślne: 8 nieudanych prób w ciągu 15 minut, konfigurowalne w panelu administracyjnym). Udane logowanie zeruje licznik nieudanych prób. Dodatkowo każda próba logowania przed sprawdzeniem hasła atomowo rezerwuje próbę na konto (domyślnie 8 w ciągu 15 minut, również udane próby, bez zerowania) i na adres IP (dziesięciokrotność, co najmniej 80); kody uwierzytelniania dwuskładnikowego są ograniczone do 10 prób na konto w ciągu 15 minut. To ograniczanie zapisuje wyłącznie klucze HMAC, bez adresu e-mail ani adresu IP w postaci jawnej. Rejestracje mają własne okno czasowe na adres IP z tymi samymi limitami. Jeżeli pamięć tego ograniczania jest niedostępna, logowanie jest odrzucane (HTTP 503), a nie dopuszczane bez ograniczeń.
  • Formularze publiczne (logowanie, rejestracja, „Nie pamiętasz hasła?”, „Wybierz nowe hasło”, wsparcie, szybki test) dodatkowo sprawdza własna ochrona formularzy formconfirmed: dowód wykonania obliczeń w przeglądarce, jednorazowy znacznik weryfikacyjny, pułapka na programy, sygnały przeglądarki, porównanie z sieciami centrów danych, sprawdzenie domeny adresu e-mail, przy wsparciu wstępny filtr antyspamowy z modelem językowym na własnych komputerach AI w UE oraz wykrywanie kampanii między stronami z nieodwracalnymi odciskami (30 dni). Zgłoszenia z wynikiem „zablokuj” są odrzucane; przy „oznacz” dopiero po drugim kroku (przycisk potwierdzenia, bardziej wymagające zadanie, ponowna weryfikacja musi dać wynik „dopuść”). Jeżeli formconfirmed jest niedostępny lub odpowiedź jest niejasna, zgłoszenie jest odrzucane i można je powtórzyć; nie ma cichego przyjęcia. Pozostałe ograniczenia obowiązują nadal.
  • „Nie pamiętasz hasła?”: najwyżej 3 linki do resetu na adres na godzinę i 10 na dzień (pseudonimowe liczniki, obowiązują także przy awarii formconfirmed) oraz jedno potwierdzenie na każde wysłanie, aby powtórzenie nie wywołało drugiego linku.
  • Logowanie dwuskładnikowe (TOTP) jest dostępne dla każdego konta. W panelu administracyjnym jest obowiązkowe; kody odzyskiwania są przechowywane wyłącznie jako skrót. Obowiązek ten można wyłączyć wyłącznie w konfiguracji serwera, a nie za pośrednictwem aplikacji.
  • Sesyjne pliki cookie mają atrybuty HttpOnly, Secure i SameSite=Lax; identyfikator sesji jest nadawany na nowo przy logowaniu. Klienci widzą swoje sesje w ustawieniach i mogą je zakończyć.
  • Każda operacja zapisu w koncie zawiera token CSRF. Wyjątkiem jest jedynie wylogowanie, które odbywa się przez zwykły link bez tokenu.
  • Administrowanie serwerem odbywa się przez SSH, wyłącznie przez właściciela lub na jego zlecenie. Nie ma wspólnie używanych kont. Z zewnątrz dostęp SSH serwera umożliwia wyłącznie logowanie kluczem; hasłem – tylko z sieci prywatnych, takich jak własna sieć lokalna (od 16.10.2026).
  • Środowisko deweloperskie jest dostępne wyłącznie za zabezpieczeniem podglądu; bez dostępu odpowiada komunikatem „brak uprawnień”.
  • Sekrety (baza danych, Redis, tokeny, klucze) znajdują się w plikach konfiguracyjnych z ograniczonymi uprawnieniami poza obszarem dostępnym publicznie, nigdy w kodzie źródłowym. Próba pobrania tych plików przez sieć WWW jest odrzucana.

2.3 Kontrola dostępu do danych

  • Przestrzenie robocze mają członków z rolami; to, co członek może widzieć i zmieniać, sprawdza serwer, a nie tylko interfejs. Jeżeli właściciel usunie swoje konto, przestrzenie robocze z innymi członkami przechodzą w pierwszej kolejności na administratora o najdłuższym stażu, w przeciwnym razie na członka o najdłuższym stażu.
  • Każde zapytanie w koncie jest powiązane z przestrzenią roboczą konta wysyłającego zapytanie; cudzą stroną nie można zarządzać nawet przy znajomości klucza.
  • Interfejs administracyjny usługi odpowiedzi jest dostępny wyłącznie przez lokalną pętlę zwrotną serwera, nigdy przez poprzedzający serwer WWW. Na potrzeby synchronizacji z reactive.chat może zostać dodatkowo powiązany z adresem w szyfrowanej sieci wewnętrznej (WireGuard) i przyjmuje tam wyłącznie połączenia ze stałej listy adresów. W każdym przypadku wymagany jest token porównywany w stałym czasie; bez wystarczająco długiego tokenu interfejs pozostaje wyłączony.
  • Tokeny push są przechowywane u operatora wyłącznie jako skrót SHA-256 i sprawdzane w stałym czasie; obowiązują wyłącznie dla swojej strony i wyłącznie dla adresów na hostach z potwierdzonym prawem własności.
  • Komputery z modelami AI otrzymują zadania wyłącznie przez podpisane pobrania (HMAC-SHA256 z sekretem o długości co najmniej 32 znaków, znacznik czasu, który może odbiegać od zegara serwera najwyżej o pięć minut). Pobrania niepodpisane lub nieprawidłowo podpisane są odrzucane, zanim zadanie zostanie wydane.
  • Usługa odpowiedzi i indekser działają jako odrębny użytkownik systemowy bez możliwości logowania (answely-dienst) i z utwardzonymi ustawieniami (brak eskalacji uprawnień, prywatny katalog tymczasowy, system tylko do odczytu, brak dostępu do katalogów domowych). Dla środowiska produkcyjnego przygotowano odrębnych użytkowników – answely-dienst-live dla usługi i answely-web dla aplikacji konta w odrębnej puli PHP – ale nie zostali jeszcze utworzeni. W środowisku deweloperskim aplikacja konta działa we wspólnej puli PHP serwera WWW.
  • Dla aplikacji konta w środowisku produkcyjnym przygotowano ograniczenie, zgodnie z którym może ona odczytywać wyłącznie własne drzewo programu, swój katalog roboczy i swój folder danych (open_basedir); pliki innych usług na tym samym serwerze, w tym ich konfiguracja, byłyby wtedy dla niej niedostępne. W środowisku deweloperskim to ograniczenie nie obowiązuje.
  • Redis: Answely korzysta z własnego użytkownika ACL, który widzi wyłącznie klucze z prefiksem swojego środowiska (w środowisku deweloperskim dodatkowo prefiks testów) i nie może wykonywać niebezpiecznych poleceń (na przykład usunięcia wszystkiego lub zmiany konfiguracji). Usługa nie otrzymuje hasła użytkownika domyślnego.
  • Bazy danych: odrębne bazy danych dla aplikacji konta i usługi odpowiedzi z odrębnymi użytkownikami, dopuszczonymi wyłącznie lokalnie na serwerze; Answely łączy się z bazą danych i Redis wyłącznie przez lokalną pętlę zwrotną. Serwer baz danych i Redis nasłuchują dodatkowo na adresie serwera w sieci wewnętrznej, ponieważ korzystają z nich inne usługi tego samego operatora; zapora serwera przepuszcza tam do bazy danych tylko jeden z komputerów AI, a do Redis nikogo. Również użytkownik administracyjny bazy danych z uprawnieniami do wszystkich baz jest dopuszczony wyłącznie lokalnie na serwerze.

2.4 Kontrola separacji

  • Każda strona ma własny klucz, własne ustawienia i własny indeks. Odpowiedzi powstają wyłącznie z indeksu strony, na której zadano pytanie; separacja poszczególnych klientów jest potwierdzona testami z rzeczywistą bazą danych.
  • Okienko odpowiedzi odpowiada wyłącznie dla hostów, których prawo własności klient wykazał (CORS dla każdej strony). Jeżeli weryfikacja trwale się nie powiedzie, okienko wyłącza się dla tej strony.
  • Kandydat i poprzedni indeks w ramach zatwierdzania indeksu mają wewnętrzne identyfikatory wyprowadzone z klucza strony i nie są publicznie dostępnymi stronami.
  • Środowisko deweloperskie i produkcyjne działają w odrębnych instalacjach z odrębnymi bazami danych, odrębnymi prefiksami Redis i odrębnymi użytkownikami systemowymi. Środowisko deweloperskie korzysta z własnych danych demonstracyjnych i testowych, a nie z danych klientów.
  • Komputery z modelami AI obsługują także inne usługi operatora (m.in. reactive.chat, Stats4U i MousePlayer). Zlecenia Answely pobiera odrębny worker z własnym sekretem; Answely przekazuje modelom językowym wyłącznie tekst, choć część obrazowa oprogramowania modeli jest włączona.
  • Pliki logotypów firm znajdują się poza drzewem programu i poza każdym katalogiem publicznym.

3. Pseudonimizacja i minimalizacja danych

  • Brak plików cookie, brak identyfikatora: Skrypt answely.js nie ustawia plików cookie, nie tworzy identyfikatora odwiedzającego i nie ładuje czcionek, obrazów ani skryptów od osób trzecich. Wysyła wyłącznie pytanie, język oraz adresy bieżącej i odsyłającej strony, oba bez parametrów i kotwic; serwer dodatkowo usuwa parametry i kotwice.
  • Opcja „Zezwól na pamięć odpowiedzi” domyślnie wyłączona: W ustawieniu domyślnym nowych stron internetowych pytania i odpowiedzi nie są zapisywane (opcja „Zezwól na pamięć odpowiedzi” wyłączona). Wszystkie funkcje opcjonalne są dla nowych stron wyłączone.
  • Tryb zgody: Jeżeli w kodzie osadzenia znajduje się data-consent="required", przeglądarka nie wysyła żadnego zapytania do Answely przed wyrażeniem zgody przez odwiedzającego, nawet po ustawienia okna. Jeżeli klient włączy ten tryb tylko w koncie, okno najpierw pobiera swoje ustawienia i wstrzymuje dopiero pytanie.
  • Skrócone adresy IP: Liczniki, dziennik dostępu serwera WWW i statystyki stron zapisują adresy IP wyłącznie w postaci skróconej: IPv4 bez ostatniego oktetu, IPv6 do /48. Dziennik dostępu nie zawiera ponadto ani parametrów, ani przeglądarki, ani strony odsyłającej.
  • Ochrona przed nadużyciami bez adresu IP: Działa ze skrótem z adresu IP i codziennie zmienianej wartości losowej. Skrót istnieje najwyżej 2 minuty, wartość losowa najwyżej 2 dni; sam adres IP nie jest w tym celu zapisywany.
  • Ochrona formularzy pseudonimowa: formconfirmed nie zapisuje adresu IP, a jedynie skrót skróconego zakresu adresów z kluczem zmienianym codziennie (najwyżej 1 godzina), a z adresu e-mail tylko wynik dla jego domeny (najwyżej 7 dni); treść wiadomości jest sprawdzana wyłącznie w pamięci operacyjnej. Hasło nigdy nie trafia do formconfirmed.
  • Brak treści w dziennikach: Pytanie i odpowiedź nie pojawiają się w żadnym dzienniku usługi odpowiedzi, indeksera, procesów roboczych AI ani serwera WWW; rejestrowane są wyłącznie rodzaje, kody i liczby. Modele AI działają bez rejestrowania zapytań.
  • Analiza pytań maskowana: Jeżeli jest włączona, adresy e-mail, numery telefonów, ciągi cyfr przypominające IBAN, linki i długie liczby są maskowane przed zapisaniem; zapis odbywa się bez adresu IP, bez identyfikatora i z dniem kalendarzowym zamiast godziny.
  • Wyłącznie grupy: Analiza pytań pokazuje klientowi wyłącznie grupy od dwóch pytań.
  • Obszary chronione (przygotowane): Tokeny dostępu są sprawdzane lokalnie; zawarte w nich dane nie są ani zapisywane, ani przekazywane modelowi językowemu.
  • Potwierdzenia zamiast identyfikatorów: Zgłoszenia sukcesu i porównanie A/B działają z losowymi identyfikatorami odpowiedzi i podpisanymi potwierdzeniami, a nie z profilami odwiedzających.
  • Lokalne ustalanie kraju: Kraj w statystykach stron jest ustalany na podstawie lokalnego pliku bazy danych; żaden adres IP nie trafia do usługi geolokalizacji.

4. Integralność

4.1 Kontrola transmisji

  • Wszystkie publiczne punkty końcowe są dostępne wyłącznie przez TLS; strona internetowa wysyła nagłówek HSTS. Certyfikaty wydaje Let's Encrypt; są one automatycznie odnawiane.
  • Serwer nigdy nie wywołuje komputerów z modelami AI. Proces roboczy na tych komputerach pobiera zadania przez TLS (long-poll), każde pobranie podpisane HMAC, i odsyła wynik tą samą drogą – w przypadku modelu językowego w częściach, aby odpowiedź płynnie pojawiała się w przeglądarce. Serwer i wszystkie komputery AI znajdują się w tej samej sieci wewnętrznej w tym samym miejscu.
  • Usługa odpowiedzi uruchamia się tylko wtedy, gdy każdy wpisany punkt końcowy AI znajduje się na liście dozwolonych serwerów w UE. Dzięki temu AI działa wyłącznie na serwerach w UE; punkt końcowy spoza listy uniemożliwia uruchomienie.
  • Answely łączy się z bazą danych i Redis wyłącznie przez lokalną pętlę zwrotną serwera (o adresach sieciowych obu zob. sekcja 2.3).
  • Kopie zewnętrzne są szyfrowane na własnym serwerze przed przesłaniem (sekcja 5.1).

4.2 Kontrola wprowadzania danych

  • Ważne operacje w koncie klienta (logowanie, zmiana ustawień, usunięcia) są zapisywane w dzienniku kontrolnym wraz z kontem, czasem i czynnością.
  • Akceptacje tekstów prawnych są rejestrowane wraz z wersją, momentem, adresem IP i przeglądarką.
  • Zdarzenia płatnicze ze Stripe są przyjmowane wyłącznie z ważnym podpisem i przetwarzane dokładnie raz dla każdego zdarzenia.

4.3 Kontrola przekazywania i ochrona danych wyjściowych

  • Skrypt wysyła dane wyłącznie do własnej infrastruktury operatora. W normalnym działaniu nie jest kontaktowana żadna osoba trzecia.
  • Odpowiedzi są najpierw maskowane, a następnie opatrywane oznaczeniami źródeł; linki wyłącznie z https i wyłącznie do hostów strony internetowej. Tekst od użytkowników trafia w przeglądarce na stronę wyłącznie jako tekst, nigdy jako HTML.
  • Własny CSS klienta jest oczyszczany; oznaczenie treści AI jest chronione przed ukryciem.
  • Indekser pobiera wyłącznie domeny z potwierdzonym prawem własności, wyłącznie adresy publiczne – żadnych sieci prywatnych, wewnętrznych, link-local ani zarezerwowanych, również po przekierowaniu – wyłącznie metodą GET, bez plików cookie i danych dostępowych, z limitami czasu i rozmiaru oraz z przestrzeganiem robots.txt.
  • Dane na żywo serwer pobiera wyłącznie z najwyżej dwóch na stałe zapisanych publicznych punktów końcowych HTTPS na potwierdzonych hostach, bez danych dostępowych, parametrów ani danych odwiedzającego.
  • Rozpoznawanie tekstu w plikach PDF działa lokalnie z ograniczonymi zasobami, czasem i liczbą stron w prywatnym folderze tymczasowym, który jest następnie usuwany; zewnętrzne rozpoznawanie tekstu nie jest wykorzystywane.
  • Przesłane logotypy firm są sprawdzane i ponownie kodowane przed zapisaniem; plik oryginalny nie jest udostępniany.
  • Strona internetowa wysyła nagłówki bezpieczeństwa chroniące przed osadzaniem na cudzych stronach, przed pomyleniem typów, zapewniające oszczędne przekazywanie adresu pochodzenia oraz blokujące dostęp do kamery, mikrofonu i lokalizacji. Content-Security-Policy ogranicza adres bazowy, obiekty, cele formularzy i osadzanie, ale nie źródła skryptów; jest to znana luka.

5. Dostępność i odporność

5.1 Kopie zapasowe

  • Co noc proces kontrolny tworzy kopię zapasową baz danych aplikacji konta i usługi odpowiedzi, sprawdza kompletność kopii i usuwa stare wersje. Własne kopie zapasowe na serwerze są usuwane po 30 dniach.
  • W każdą niedzielę próba odtworzenia wgrywa najnowszą kopię zapasową do tymczasowej bazy danych, porównuje ją i ponownie usuwa próbę.
  • Dodatkowo co noc kopia wszystkich baz danych serwera i całego katalogu WWW jest umieszczana poza serwerem, a więc również indeksu, analizy pytań, logotypów firm i własnych kopii zapasowych. Miejscem docelowym jest niepubliczna przestrzeń dyskowa w Google Cloud Storage w regionie europe-central2 (Warszawa).
  • Kopia zewnętrzna jest szyfrowana na własnym serwerze przed przesłaniem (rclone crypt), łącznie z nazwami plików i katalogów. Klucze posiada wyłącznie operator; Google widzi tylko bloki bez rozpoznawalnego znaczenia.
  • Kopie zewnętrzne są przechowywane następująco: kopie dzienne 7 dni, kopie tygodniowe 364 dni.
  • Przed zaszyfrowaniem nocna pełna kopia (zrzuty wszystkich baz danych serwera i kopia plików /var/www wraz z plikami konfiguracyjnymi) powstaje na nośniku USB podłączonym do serwera w tym samym miejscu. Tam jest przechowywana bez szyfrowania i usuwana najpóźniej po 8 dniach.
  • Usunięte dane pozostają zatem w tych kopiach do czasu ich wygaśnięcia; ukierunkowane usuwanie wewnątrz kopii nie jest przeprowadzane. Kopie służą wyłącznie do odtworzenia i nie są analizowane. To, co dzieje się przy odtworzeniu z danymi usuniętymi w międzyczasie, reguluje sekcja 12.3 umowy powierzenia przetwarzania danych.

Czego wyraźnie nie ma: Bazy danych, Redis, własne kopie zapasowe i pełna kopia na nośniku USB są przechowywane w postaci niezaszyfrowanej; nośnik serwera nie jest szyfrowany, a szyfrowanie w stanie spoczynku nie zostało skonfigurowane. Nośniki komputerów AI również nie są szyfrowane; nie są na nich jednak przechowywane żadne treści: komputery pobierają zadania, przetwarzają je w pamięci operacyjnej i odsyłają wynik, nie zapisując niczego u siebie. Własne kopie zapasowe znajdują się na tym samym nośniku co bazy danych; przed awarią tego nośnika chronią dopiero kopia na nośniku USB i kopia zewnętrzna. Odtworzenie całego serwera z kopii zewnętrznej nie zostało dotychczas przetestowane. Docelowy czas odtworzenia: najwyżej 24 godziny. Ponieważ kopie zapasowe są tworzone codziennie, utrata danych wynosi z reguły najwyżej jeden dzień.

5.2 Odporność i wyłączniki

  • Ograniczanie liczby zapytań: najwyżej 60 wywołań na minutę i adres IP łącznie dla wszystkich publicznych punktów końcowych usługi odpowiedzi; powyżej tej granicy usługa odpowiada komunikatem „zbyt wiele zapytań”.
  • Dopuszczanie: usługa przyjmuje tylko ograniczoną liczbę równoczesnych odpowiedzi, łącznie i dla każdej strony; powyżej tej liczby natychmiast odmawia, zamiast kolejkować zapytania.
  • Wyłącznik: jeżeli model językowy wielokrotnie zawodzi, usługa przez pewien czas nie przyjmuje już zapytań do modelu. Okienko wówczas znika, a zwykła wyszukiwarka strony internetowej klienta pozostaje w pełni dostępna.
  • Kilka komputerów AI: odpowiedzi generują dwa komputery; jeżeli jeden z nich jest obciążony lub ulegnie awarii, przejmuje drugi. Prace w tle, takie jak osadzenia podczas przebiegów indeksowania i nocne grupowanie, działają na kolejnym własnym komputerze. Jeżeli awarii ulegną oba komputery generujące odpowiedzi, odpowiedzi nie są udzielane; okienko znika.
  • Zadania AI mają terminy: jeżeli żaden proces roboczy nie pobierze zadania lub proces roboczy przestanie się zgłaszać, zadanie kończy się błędem, zamiast się zawieszać. Pytania odwiedzających mają pierwszeństwo przed pracami indeksera.
  • Limity dla każdej strony i miesiąca ograniczają obciążenie; klient jest ostrzegany przy 80 i 100 procentach.
  • Połączenia procesów roboczych biegną odrębną drogą z pominięciem serwera WWW, z limitami dla każdego adresu i łącznie, aby oczekujące pobrania nie zajmowały miejsc przeznaczonych dla odwiedzających.

Ograniczenie, szczerze: Według ostatniego pomiaru obciążenia wydajność nie wystarcza na wysokie szczyty; powyżej granicy usługa odmawia, zamiast zwalniać. Dodatkowa wydajność u dostawcy AI w UE jest przygotowana, ale nie działa i byłaby dopuszczalna dopiero po spełnieniu warunków określonych w sekcji 8.3 umowy powierzenia przetwarzania danych.

5.3 Monitorowanie

  • Proces kontrolny co pięć minut sprawdza interfejs, bazę danych, wolne miejsce na dysku, certyfikaty TLS, usługę odpowiedzi, gotowość modeli AI i czas odpowiedzi i zgłasza awarię dopiero po dwóch kolejnych nieudanych pomiarach, aby pojedynczy restart nikogo nie budził. Kontrole strony internetowej i indeksera są włączone w środowisku produkcyjnym; w środowisku deweloperskim są wyłączone.
  • Kanały powiadomień: sygnał bez treści przez Telegram oraz wpis z komponentem, błędem i czasem trwania w pilnych komunikatach („Urgent Logs”) panelu administracyjnego, który pozostaje otwarty, dopóki operator go nie odhaczy.
  • Oczekujące usunięcie, które po 12 godzinach nadal nie zostało wykonane, powoduje wpis błędu w dzienniku błędów operatora. Aktywny alarm (Telegram lub wpis w Urgent Logs) z tego nie wynika.

Ograniczenie: Monitorowanie działa na komputerze, który monitoruje, i nie może samo zgłosić jego całkowitej awarii. Sygnał kontrolny (heartbeat) do zewnętrznej usługi jest przewidziany w kodzie, ale nie został skonfigurowany. Dostarczenie alarmu do rzeczywistego odbiorcy nie zostało jeszcze przetestowane dla Answely. Powodzenie nocnego przesyłania kopii zewnętrznej codziennie automatycznie sprawdza strażnik, którego operator prowadzi dla tego serwera; jeżeli zabraknie udanej kopii, zgłasza to operatorowi.

6. Procedura regularnego testowania

  • Każda zmiana w kodzie przechodzi przez automatyczne testy dla usługi, aplikacji konta i skryptu, w tym testy separacji poszczególnych klientów, uprawnień dostępu, podpisów, przetwarzania danych wejściowych we wszystkich formularzach, terminów usuwania z przestawionym zegarem i ścieżek awaryjnych.
  • Odrębny zestaw testów porównuje liczby i zobowiązania zawarte w tekstach prawnych z kodem i konfiguracją – w obu kierunkach: tekst nie może podawać innego terminu niż kod, a teksty obowiązkowe muszą podawać każdy termin. Sprawdza on również zobowiązanie, że AI działa wyłącznie w UE, w odniesieniu do listy dozwolonych serwerów.
  • Pomiar obejmujący całą ścieżkę sprawdza, czy przy wyłączonej opcji „Zezwól na pamięć odpowiedzi” znacznik w pytaniu nie pojawia się ani w bazach danych, ani w Redis, dziennikach systemowych czy dziennikach.
  • Zależności są sprawdzane ręcznie pod kątem znanych podatności, ostatnio 09.10.2026 (audyt npm i Composer bez otwartych ustaleń); automatycznej kontroli przy każdej zmianie nie ma. Środowisko uruchomieniowe jest utrzymywane w obsługiwanych wersjach.
  • Środki opisane w niniejszym dokumencie są weryfikowane, gdy zmienia się przetwarzanie – w szczególności przed każdą zmianą dostawcy AI, zapasowego punktu końcowego, analizy pytań lub interfejsu push – a poza tym corocznie.

Zewnętrzne testy penetracyjne nie są obecnie zlecone i nie istnieją żadne certyfikaty bezpieczeństwa. Jest to tu wyraźnie wskazane: dokument dotyczący środków technicznych i organizacyjnych, który o tym milczy, sprawia wrażenie, jakby takie testy istniały.

7. Dalsze podmioty przetwarzające

Operator korzysta z usług dalszych podmiotów przetwarzających wyłącznie na podstawie ogólnego upoważnienia zawartego w umowie powierzenia przetwarzania danych, zapowiada zmiany 30 dni wcześniej i umownie zobowiązuje każdy z nich do tych samych obowiązków. Aktualna lista: Dalsze podmioty przetwarzające.

W udzielaniu odpowiedzi na pytanie nie uczestniczy żadna osoba trzecia: skrypt wysyła dane wyłącznie do własnej infrastruktury, a model językowy działa na własnym sprzęcie. Szyfrowana kopia zewnętrzna w Google czyni Google dalszym podmiotem przetwarzającym, nawet jeżeli Google nie może odczytać treści – szyfrowanie jest środkiem ochrony, a nie zmianą roli. E-maile do klientów, w tym opcjonalny raport luk w wiedzy z grupami zamaskowanych pytań, operator wysyła za pośrednictwem Namecheap Private Email (Namecheap, Inc., USA); przekazywanie opiera się na standardowych klauzulach umownych UE zawartych w Data Processing Addendum Namecheap.

8. Przechowywanie i usuwanie

Usuwanie odbywa się automatycznie; nie jest uruchamiane ręcznie. Każdy termin jest potwierdzony testem z przestawionym zegarem.

8.1 Okienko odpowiedzi (w imieniu klienta)

  • Pytania i odpowiedzi w ustawieniu domyślnym: brak zapisywania.
  • Bufor odpowiedzi (wyłącznie przy włączonej opcji „Zezwól na pamięć odpowiedzi”): 24 godziny; po nowej wersji indeksu stary wpis nie jest już używany i wygasa z upływem tego terminu.
  • Liczniki bez treści: 7 dni.
  • Ochrona przed nadużyciami: skrót 2 minuty.
  • Dziennik dostępu serwera WWW: 7 dni.
  • Analiza pytań (wyłącznie po wyrażeniu zgody przez klienta, opt-in): 90 dni, sprawdzane co godzinę; natychmiast wraz ze stroną lub po naciśnięciu przycisku.
  • Raporty testów odpowiedzi i techniczne raporty zatwierdzeń: najwyżej 30 dni.
  • Diagnostyka odpowiedzi: wyłącznie w pamięci operacyjnej, najwyżej 15 minut po zakończeniu.
  • Indeks, kopie indeksu i ustawienia strony: do czasu usunięcia strony, następnie w ciągu 24 godzin. Kolejka ponawia usunięcia, których usługa nie przyjęła natychmiast, i po 12 godzinach zapisuje błąd w dzienniku. Proces porównawczy wykrywa osierocone strony.

8.2 Konto klienta i strona internetowa (administrator)

  • Statystyki stron: 60 dni.
  • Dziennik kontrolny: 365 dni.
  • Dziennik błędów: 90 dni.
  • Skrzynka nadawcza: 30 dni.
  • Próby logowania: 7 dni.
  • Ochrona formularzy formconfirmed: skrót skróconego zakresu adresów najwyżej 1 godzina, wyniki weryfikacji 30 dni, wynik dla domeny adresu e-mail najwyżej 7 dni.
  • Potwierdzenia przy „Nie pamiętasz hasła?”: 7 dni; informacje o stanie ochrony formularzy: 30 dni.
  • Dane konta: do czasu usunięcia konta, następnie natychmiast; faktury 5 lat od końca roku kalendarzowego, w którym powstały, zgodnie z polskim prawem podatkowym, następnie automatyczne usunięcie; dowód akceptacji tekstów prawnych po usunięciu, gdy akceptacja ma 4 lata, czyli najpóźniej 4 lata po usunięciu.
  • Sesje: zakończone lub nieużywane po 30 dniach od zakończenia lub ostatniego użycia.
  • Zgłoszenia do wsparcia wraz z projektami odpowiedzi AI: 1095 dni od ostatniej odpowiedzi.
  • Własne kopie zapasowe: 30 dni.
  • Zewnętrzne szyfrowane kopie: kopie dzienne 7 dni, kopie tygodniowe 364 dni.
  • Niezaszyfrowana pełna kopia na nośniku USB przy serwerze: najwyżej 8 dni.

9. Naruszenia ochrony danych osobowych

Operator powiadamia klienta niezwłocznie, najpóźniej 48 godzin po stwierdzeniu naruszenia ochrony danych osobowych, które dotyczy danych klienta. Powiadomienie zawiera informacje, których klient potrzebuje do wykonania swoich obowiązków zgodnie z art. 33 i 34 RODO. Każde naruszenie jest dokumentowane wraz z okolicznościami, skutkami i podjętymi działaniami zaradczymi.

Adres do zgłaszania incydentów bezpieczeństwa: support@answely.com

10. Stan i wersja

Wersja 1.0, stan na 18.10.2026 – pierwsza opublikowana wersja; wersja 1.1, stan na 31.10.2026: dodano ochronę formularzy formconfirmed (2.2, 3, 8.2); wersja 1.2, stan na 04.11.2026: zasada na wypadek awarii bez cichego przyjęcia (2.2); wersja 1.3, stan na 04.11.2026: limit liczby, potwierdzenia i informacje o stanie (2.2, 8.2); wersja 1.4, stan na 06.11.2026: drugi krok przy „oznacz” (2.2); wersja 1.5, stan na 06.11.2026: wykrywanie kampanii i model językowy (2.2). Następna weryfikacja: corocznie.

W przypadku rozbieżności między wersjami językowymi wiążąca jest wersja angielska; wersja niemiecka i polska są tłumaczeniami o charakterze informacyjnym.

Wersja 1.5 – stan na 06.11.2026