Przejdź do głównej treści

Co naprawdę robi kod

Dwadzieścia mechanizmów zweryfikowanych pod kątem zgodności z kodem 16.09.2026. Każdy opisany w jednym zdaniu.

Zweryfikowano z kodem w dniu 16.09.2026

  1. Każde zapytanie do bazy danych przechodzi przez rozszerzenie Prisma, które przypisuje je do organizacji powiązanej z żądaniem. Zapytanie bez kontekstu organizacji kończy się błędem, zamiast zwracać wiersze.

  2. Klucze generujące TOTP oraz tokeny zewnętrznych dostawców są przechowywane w postaci zaszyfrowanej za pomocą AES-256-GCM, z użyciem pęku kluczy umożliwiającego rotację kluczy bez utraty dostępu do istniejących danych.

  3. Każda odpowiedź HTML otrzymuje nagłówek Content-Security-Policy z losową wartością nonce dla każdego żądania, a skrypty wbudowane (inline) bez tej wartości nie są uruchamiane.

  4. Każde wywołanie zmieniające stan, które niesie ze sobą sesję personelu, musi przesyłać token CSRF zgodny z plikiem cookie, a wymuszanie tego zabezpieczenia nie może zostać wyłączone w środowisku produkcyjnym.

  5. Link do potwierdzenia akceptacji jest podpisany za pomocą HMAC-SHA256, podpis jest weryfikowany przed jakimkolwiek odczytem z bazy danych, a każdy błąd zwraca ten sam kod 404.

    Link do udostępniania to losowy token o długości 32 bajtów, z którego zapisywany jest wyłącznie skrót SHA-256, z określoną datą ważności, opcjonalnym hasłem i możliwością natychmiastowego unieważnienia. Unieważniony, wygasły lub nieznany link zwraca ten sam kod 404.

  6. Każdy przesłany plik jest skanowany za pomocą ClamAV na prywatnej maszynie wirtualnej wewnątrz VPC, zanim powstanie z niego wersja podglądowa, a plik bez czystego wyniku jest zatrzymywany i nie jest udostępniany.

    Pliki o rozmiarze powyżej 2 GiB są wstrzymywane i nie są skanowane. Wstrzymany plik nie jest udostępniany.

  7. Klient wchodzi do portalu bez konta, za pomocą kodu, linku, telefonu lub e-maila; zapisywany jest tylko HMAC kodu lub tokenu, wejście wygasa (domyślnie po 30 dniach), a unieważnienie odłącza każde urządzenie w ciągu dwóch minut.

  8. Rejestr aktywności w aplikacji działa wyłącznie w trybie dopisywania: żadna ścieżka w kodzie nie aktualizuje ani nie usuwa wpisów audytowych, a bramka CI zgłasza błąd przy jakiejkolwiek próbie dodania takiej możliwości.

  9. Każda ścieżka API ma ograniczoną liczbę żądań na użytkownika lub adres IP klienta za pomocą współdzielonego licznika Redis między instancjami. W przypadku niedostępności bazy Redis limit spada do jednej trzeciej na instancję, zamiast całkowitego otwarcia ruchu.

  10. Sesja to podpisany plik cookie JWT (HS256) z flagami HttpOnly, Secure oraz SameSite=Lax, który wygasa po dwóch godzinach bezczynności i może być unieważniony na wszystkich urządzeniach jednocześnie. Hasła są przechowywane jako skróty scrypt, a kody odzyskiwania MFA są zapisywane wyłącznie jako skróty HMAC.

  11. Portal klienta, linki do udostępniania, potwierdzenia, strony akceptacji zaproszeń, ukończenia rejestracji oraz resetowania hasła zawierają znacznik noindex, a plik robots.txt blokuje dostęp do ścieżek /api/, /admin, /app i /coupons.

  12. Właściciel obszaru roboczego eksportuje dane i usuwa obszar roboczy lub własne konto bez pytania nas o zgodę. Usunięcie natychmiast blokuje dostęp, a trwałe wykasowanie danych następuje automatycznie po 30 dniach - liczbie zapisanej w regulaminie, polityce prywatności i DPA.

  13. Sekrety są montowane z Secret Manager w czasie wdrażania, weryfikowane przy uruchomieniu (minimalna długość, odrzucanie wartości zastępczych, klucz szyfrowania musi składać się z 32 losowych bajtów) oraz maskowane w logach i raportach o błędach.

  14. Zaplanowane wywołania są uwierzytelniane za pomocą podpisu HMAC-SHA256 w pięciominutowym oknie czasowym lub tokenu Google OIDC, a statyczny sekret Bearer jest odrzucany w środowisku produkcyjnym.

  15. Każde żądanie wychodzące na adres podany przez użytkownika (import z Google Drive, webhooki) jest weryfikowane pod kątem prywatnych zakresów adresów, w tym po przekierowaniach i w momencie nawiązywania połączenia.

  16. Treść żądania API jest ograniczona do 1 MiB i weryfikowana pod kątem rygorystycznego schematu, który odrzuca nieznane pola, zanim kod w ogóle jej dotknie.

  17. Typ pliku jest określany na podstawie samych bajtów, a nie deklaracji przeglądarki, a plik przekraczający limit planu lub maksymalny rozmiar pojedynczego pliku jest odrzucany jeszcze przed przesłaniem.

  18. Każda ścieżka obiektu jest sprawdzana pod kątem prefiksu organizacji przed podpisaniem, odczytem lub usunięciem, a pliki są udostępniane za pomocą podpisanych adresów URL o ograniczonym czasie ważności (6 godzin na wyświetlenie, 5 minut na pobranie).

  19. Propozycje AI są zapisywane jako propozycje i wdrażane dopiero po zatwierdzeniu przez człowieka, a kod AI nie może otwierać zakresu systemowego nad danymi klientów; jest to egzekwowane przez bramkę CI.

  20. Każde wdrożenie przechodzi najpierw pełny pakiet testów z pokryciem, bramki kodu oraz npm audit na poziomie wysokim; wdrożenie produkcyjne przechodzi również przez wersję canary z testami gotowości.

Gdzie działają serwery

Serwery, baza danych i pliki Tasked znajdują się w regionie europe-west1 (Belgia) chmury Google Cloud.

Podprocesorzy (e-mail, SMS, płatności, raportowanie błędów, dostawcy AI) oraz Google Analytics, które mierzy korzystanie z witryny i aplikacji, przetwarzają dane poza tym regionem.

Za co odpowiadasz

  • Linki do portalu, linki do udostępniania oraz linki do potwierdzeń działają jak klucze okaziciela: każdy, kto je posiada, uzyskuje dostęp.
  • MFA jest opcjonalne dla każdego konta i nie jest wymagane na wszystkich kontach.
  • Wstrzymany plik wymaga podjęcia działań przez członka zespołu obszaru roboczego.
  • Usunięte dane można przywrócić przez 30 dni, po czym są one bezpowrotnie usuwane.

Zacznij bez karty

Czternaście dni, wszystkie funkcje włączone. Otwórz obszar roboczy, powiedz AI, jak pracujesz, i zaproś klienta do akceptacji.

Masz pytanie? Napisz do nas

Odpowiadamy bezpośrednio na stronie, kiedy tylko możemy, a w razie potrzeby kontaktuje się z Tobą człowiek. Żadnych list mailingowych.