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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.