Przetłumaczono przy użyciu AI z angielskiej wersji z dnia 30 października 2026. Przeczytaj oryginał
Bezpieczeństwo w LightInventory
Gdzie są Twoje dane, o jaki dostęp do Google prosimy, jak działają logowanie, role i historia odporna na manipulacje oraz z jakich dostawców korzystamy.
Ostatnia aktualizacja: 30 października 2026
Twoje dane magazynowe zostają w Twoim własnym arkuszu Google. LightInventory odczytuje i zapisuje ten plik w Twoim imieniu, nie przechowuje kopii jego zawartości na naszych serwerach i zapisuje tylko to, czego potrzebuje do obsługi Twojego konta. Ta strona wyjaśnia dokładnie, jak to działa, przed czym chronimy i gdzie są granice tej ochrony.
Gdzie są Twoje dane
Dane biznesowe (towary, lokalizacje, ruchy magazynowe, ceny, notatki, propozycje do zatwierdzenia oraz wartości przed zmianą i po niej w Twojej historii) znajdują się wyłącznie w arkuszach na Twoim koncie Google. Nasze serwery wczytują wartości komórek do pamięci operacyjnej, aby wyświetlać strony, porównywać zmiany, przygotowywać eksporty i zapisywać Twoje aktualizacje. Wartości te nie są zapisywane w naszej bazie danych, w logach ani w raportach błędów. Zautomatyzowany zestaw testów sprawdza, że żadna tabela, linia logu ani zdarzenie błędu nie zawiera wartości komórek.
Przechowujemy natomiast dane potrzebne do obsługi Twojego konta:
| Co przechowujemy | Dlaczego | Ochrona |
|---|---|---|
| Użytkownicy, profile, organizacje, członkostwa, role, zaproszenia (tylko skrót każdego tokena zaproszenia) | Logowanie i zarządzanie zespołem | Szyfrowanie danych w spoczynku po stronie dostawcy bazy danych |
| Składniki logowania: klucze publiczne kluczy dostępu, sekrety TOTP, zahaszowane kody odzyskiwania | Uwierzytelnianie wieloskładnikowe | Sekrety TOTP są dodatkowo szyfrowane kopertowo kluczami przechowywanymi w usłudze zarządzania kluczami |
| Token odświeżania Google dla połączonego arkusza | Odczyt i zapis Twojego pliku | Szyfrowanie kopertowe; nigdy nie trafia do przeglądarki ani do logów |
| Metadane arkusza: identyfikator pliku, identyfikatory kart, wersja schematu, tryb blokady | Odnajdywanie i sprawdzanie Twojego pliku | Nie zawierają wartości komórek |
| Odciski wierszy (skróty z kluczem dla każdego wiersza) | Wykrywanie zmian wprowadzonych bezpośrednio w arkuszu | Dzięki kluczowi nie da się z nich odtworzyć wartości |
| Łańcuch skrótów audytu: numery kolejne, identyfikatory wpisów, skróty, identyfikator autora, typ działania, czas | Dowód, że Twoja historia nie została zmieniona | Nie zawiera wartości |
| Dane rozliczeniowe od naszego operatora płatności | Subskrypcje i faktury | Nie zawierają numerów kart |
| Zdarzenia bezpieczeństwa: próby logowania, nieudane próby dostępu, adres IP, przeglądarka | Wykrywanie nadużyć | Adres IP usuwany po 90 dniach, zdarzenia usuwane po 1 roku |
Nasz własny system działa w Londynie. Baza danych (Supabase, region eu-west-2), serwery aplikacji (Vercel, region lhr1) oraz nasze klucze szyfrowania i kotwice historii (Google Cloud, region europe-west2) są przypisane do tej lokalizacji. Jedynym udokumentowanym wyjątkiem są e-maile transakcyjne, opisane w sekcji Infrastruktura i podmioty przetwarzające.
O jaki dostęp do Google prosimy
LightInventory prosi Google o dwie rzeczy. Przy logowaniu przez Google prosi o Twój podstawowy profil: openid, email i profile. Gdy łączysz arkusz, osobno prosi o jedno uprawnienie do Dysku: drive.file.
Mówiąc prościej, drive.file pozwala aplikacji pracować tylko z plikami, które w niej utworzysz lub dla niej wybierzesz. Google opisuje je jako dostęp do plików, które otwierasz za pomocą aplikacji lub które użytkownik udostępnia aplikacji podczas korzystania z interfejsu Google Picker API (zakresy Google Drive API). Google klasyfikuje go jako zakres niewrażliwy.
Co to oznacza dla Ciebie:
- LightInventory nie może wyświetlać listy plików, otwierać ani przeszukiwać reszty Twojego Dysku Google. Plik, który nie został utworzony w LightInventory ani wybrany w selektorze plików Google, jest dla niego niewidoczny.
- Nigdy nie prosimy o szerszy zakres
spreadsheetsani o żaden zakres obejmujący cały Dysk. - Po każdym przyznaniu uprawnień sprawdzamy, czy Google zwróciło dokładnie taki dostęp, o jaki prosiliśmy.
- Dostęp możesz w każdej chwili usunąć w ustawieniach konta Google. Zobacz Odbieranie LightInventory dostępu do konta Google.
Dostęp przyznaje tylko osoba, która łączy arkusz, i musi ona być właścicielem pliku. Członkowie Twojego zespołu nigdy nie są dodawani do pliku w Google. Pracują w aplikacji, w ramach ról, które im nadasz.
Logowanie i sesje
Każdy użytkownik loguje się za pomocą dwóch składników, w każdym planie i przy każdym rozpoczęciu sesji.
- Pierwszy składnik: logowanie przez Google albo adres e-mail i hasło. Hasło musi mieć co najmniej 12 znaków i jest sprawdzane na listach haseł, które wyciekły. Logowanie przez Google liczy się wyłącznie jako pierwszy składnik, nigdy jako oba.
- Drugi składnik: klucz dostępu, który jest opcją domyślną i jest odporny na phishing, albo kod TOTP z aplikacji uwierzytelniającej. Każdy użytkownik rejestruje co najmniej dwie metody i otrzymuje 10 jednorazowych kodów odzyskiwania.
W przypadku Właścicieli i Administratorów domyślnie wymagane jest logowanie odporne na phishing, więc TOTP jest dla tych ról wyłączone, chyba że właściciel zmieni to ustawienie. Sprzętowe klucze bezpieczeństwa działają jako klucze dostępu. Link w e-mailu pozwala zresetować hasło, ale nigdy nie zastępuje drugiego składnika.
Uwierzytelnianie wieloskładnikowe jest sprawdzane w dwóch niezależnych miejscach: w kodzie naszego serwera i w regułach dostępu samej bazy danych. Sesja, która przeszła tylko pierwszy składnik, nie może niczego odczytać, nawet jeśli odwołuje się bezpośrednio do bazy danych.
| Ustawienie sesji | Wartość |
|---|---|
| Wylogowanie po okresie bezczynności | 60 minut |
| Maksymalna długość sesji | 24 godziny |
| Świeże potwierdzenie drugim składnikiem przy działaniach wrażliwych | W ciągu ostatnich 5 minut |
| Nieudane próby drugiego składnika przed blokadą | 10, z opóźnieniami od 30 sekund do 1 godziny |
Działania wrażliwe obejmują zmiany ról, zmiany rozliczeń, łączenie i odłączanie arkusza, eksporty, zbiorcze cofanie zmian, zmiany metod logowania i usunięcie organizacji. Możesz zobaczyć swoje aktywne sesje i zakończyć dowolną z nich. Wysyłamy Ci e-mail, gdy loguje się nowe urządzenie, gdy metoda logowania zostaje dodana lub usunięta oraz gdy zostaną użyte kody odzyskiwania.
Role, lokalizacje i zatwierdzanie
Każda organizacja ma pięć ról: Właściciel, Administrator, Zatwierdzający, Edytujący i Przeglądający. Edytujących i Przeglądających można ograniczyć do wybranych lokalizacji, dzięki czemu zespół sklepu widzi i zmienia tylko własne zapasy.
| Uprawnienie | Właściciel | Administrator | Zatwierdzający | Edytujący | Przeglądający |
|---|---|---|---|---|---|
| Wyświetlanie towarów, stanów i historii | Tak | Tak | Tak | Własne lokalizacje | Własne lokalizacje |
| Rejestrowanie ruchów | Tak | Tak | Tak | Własne lokalizacje | Nie |
| Zatwierdzanie próśb | Tak | Tak | Tak, ale nie własnych | Nie | Nie |
| Zbiorcze cofanie zmian | Tak | Tak | Nie | Nie | Nie |
| Zarządzanie członkami | Tak | Tak | Nie | Nie | Nie |
| Łączenie arkusza, usuwanie organizacji | Tak | Nie | Nie | Nie | Nie |
Uprawnienia są odczytywane na bieżąco przy każdym żądaniu, więc usunięcie kogoś lub zmiana jego roli działa od jego następnego działania. Każde żądanie jest odrzucane, chyba że zezwala na nie jakaś reguła. Każda rola jest opisana na stronie Zespół i role.
Zatwierdzanie jest opcjonalne. Gdy jest włączone, organizacja może wymagać zatwierdzenia takich zmian jak edycja cen czy korekty stanów. Proponowana zmiana jest zapisywana na chronionej karcie w Twoim arkuszu i nikt nie może zatwierdzić własnej prośby. Więcej informacji znajdziesz w omówieniu ścieżki audytu.
Historia odporna na manipulacje
Każda zmiana wprowadzona w LightInventory jest zapisywana jako wpis historii na chronionej karcie Log w Twoim arkuszu, w tej samej aktualizacji Google co sama zmiana. Stan magazynowy nigdy nie jest edytowany jako liczba. Jest obliczany z listy ruchów, do której można tylko dopisywać, a cofnięcie zmiany to nowy, przeciwny wpis, a nie usunięcie.
Odporność na manipulacje oznacza, że jeśli ktoś zmieni lub usunie wcześniejszy wpis, weryfikacja to wykaże. Nie oznacza, że taka zmiana jest niemożliwa. Działa to tak:
- Łańcuch z kluczem. Każdy wpis otrzymuje kod obliczony z jego zawartości i kodu poprzedniego wpisu za pomocą HMAC-SHA256 i tajnego klucza Twojej organizacji, który ma wyłącznie LightInventory. Zmiana jednego wpisu przerywa łańcuch od tego miejsca. Ponieważ klucz jest tajny, nikt nie może po cichu przeliczyć kodów po zmianie.
- Kopia łańcucha bez wartości. Kody łańcucha, nigdy Twoje wartości, przechowujemy w tabeli bazy danych, która odrzuca aktualizacje i usunięcia.
- Dzienne kotwice poza naszą bazą danych. Raz dziennie pojedynczy odcisk najnowszej pozycji łańcucha każdej organizacji jest zapisywany w zasobniku Google Cloud Storage z zablokowaną zasadą przechowywania na 7 lat. Po zablokowaniu tej zasady nie można skrócić ani usunąć. Atakujący, który zdołałby zmienić naszą bazę danych, nadal nie mógłby przepisać tych kotwic.
- Nocna weryfikacja. Każdej nocy, a także na żądanie właściciela, ponownie obliczamy łańcuch na podstawie Twojej karty
Logi porównujemy go z naszą kopią i najnowszą kotwicą. Jeśli coś się nie zgadza, każdy członek widzi ostrzeżenie o integralności, a Właściciel i Administratorzy dostają e-mail.
Granicą jest własność pliku. Właściciel pliku Google zawsze może go edytować, odblokować, skopiować lub usunąć; Google nie pozwala nikogo z tego wykluczyć. Łańcuch nie może temu zapobiec, ale sprawia, że staje się to widoczne. Google rejestruje też zapisy naszej aplikacji pod kontem właściciela, ponieważ zapisujemy dane na podstawie uprawnień właściciela. Nasza karta Log wskazuje faktycznego członka zespołu.
Zmiany wprowadzane bezpośrednio w arkuszu
Domyślnie zarządzane karty są chronione tak, że w Arkuszach Google może je edytować tylko właściciel, a edytujący plik nie mogą udostępniać go dalej. Opcjonalna ścisła blokada sprawia, że plik jest w Google tylko do odczytu, dopóki właściciel celowo go nie odblokuje.
Ponieważ właściciel zawsze może wprowadzać zmiany, LightInventory również je wykrywa. Za każdym razem, gdy aplikacja odczytuje Twój arkusz, porównuje każdy wiersz z zapisanym odciskiem. Kontrola w tle działa też dla organizacji, których nikt akurat nie przegląda. Gdy wiersz zmienił się poza aplikacją, aplikacja rejestruje to wraz z możliwie najlepszym przypisaniem autora na podstawie danych o wersjach z Google, a następnie stosuje zasadę Twojej organizacji: blokuje zmianę, dopóki Właściciel lub Administrator jej nie przyjmie albo nie przywróci poprzedniego stanu, akceptuje ją i zapisuje w logu albo wstrzymuje do zatwierdzenia. Zmiany wcześniejszych ruchów lub wpisów historii są zawsze oznaczane.
Szyfrowanie i sekrety
- Podczas przesyłania: cały ruch korzysta z HTTPS. Przeglądarki otrzymują polecenie używania wyłącznie HTTPS (HSTS z preload), a nasze strony stosują ścisłą politykę Content Security Policy.
- W spoczynku: nasza baza danych jest szyfrowana w spoczynku przez jej dostawcę. Twój arkusz przechowuje i szyfruje Google.
- Tokeny i klucze: tokeny odświeżania Google, sekrety TOTP i klucze historii każdej organizacji są szyfrowane algorytmem AES-256-GCM z nowym kluczem dla każdego rekordu. Ten klucz jest z kolei chroniony kluczem głównym w Google Cloud KMS w Londynie, który nigdy nie opuszcza KMS i jest co roku rotowany. KMS działa w osobnym projekcie chmurowym z własną kontrolą dostępu, a nasze serwery łączą się z nim bez żadnych zapisanych długoterminowych danych uwierzytelniających.
- Brak dostępu wsparcia do Twojego arkusza. Nie ma funkcji, która pozwalałaby naszym pracownikom logować się jako Ty, ani narzędzia wsparcia, które otwierałoby Twój arkusz. Dostęp do naszej produkcyjnej bazy danych wymaga udziału dwóch osób i jest rejestrowany.
Infrastruktura i podmioty przetwarzające
| Dostawca | Rola | Region |
|---|---|---|
| Supabase | Baza danych i uwierzytelnianie (wyłącznie dane systemowe) | Londyn (eu-west-2) |
| Vercel | Hosting aplikacji i zapora sieciowa; sieć dostarczania treści | Funkcje w Londynie (lhr1); globalny CDN |
| Google Cloud | Zarządzanie kluczami i kotwice historii (wyłącznie dane systemowe) | Londyn (europe-west2) |
| Resend | E-maile transakcyjne (zaproszenia, powiadomienia o bezpieczeństwie i rozliczeniach) | Stany Zjednoczone |
| Stripe | Rozliczenia i płatności | Bez przypisanego regionu |
| Cloudflare | DNS z DNSSEC oraz CAPTCHA w formularzach logowania | Sieć globalna |
Interfejsy API Arkuszy i Dysku Google przetwarzają Twój arkusz jako Twój własny dostawca. E-maile, które wysyłamy, nigdy nie zawierają Twoich danych magazynowych. W przypadku dostawców z siedzibą w USA przekazywanie danych odbywa się na podstawie ramowych zasad ochrony danych UE-USA (EU-US Data Privacy Framework) z rozszerzeniem dla Wielkiej Brytanii albo standardowych klauzul umownych.
Nasza umowa powierzenia przetwarzania danych (Data Processing Agreement) jest skonstruowana tak, aby klienci otrzymywali co najmniej 30 dni wcześniej powiadomienie o nowym podmiocie przetwarzającym i mieli prawo sprzeciwu. Pełna lista podmiotów przetwarzających i sama umowa zostaną opublikowane w dniu startu.
Zgłaszanie podatności
Jeśli znajdziesz problem z bezpieczeństwem, wyślij e-mail na adres support@lightinventory.com z opisem kroków pozwalających go odtworzyć. Prosimy nie uzyskiwać dostępu do danych innych osób, nie zakłócać działania usługi i kontaktować się z nami przed jakimikolwiek aktywnymi testami, ponieważ nasz regulamin nie zezwala na testy bezpieczeństwa bez zgody. Nasze dane kontaktowe dla badaczy bezpieczeństwa są też opublikowane w formie czytelnej maszynowo w pliku security.txt. Pełna polityka odpowiedzialnego ujawniania podatności zostanie opublikowana przed startem.
Status
LightInventory przygotowuje się do startu. Plan przewiduje, że przed startem przeprowadzimy zewnętrzny test penetracyjny obejmujący logowanie, izolację klientów, autoryzację Google, webhooki i wstrzykiwanie danych do arkusza, a także pełną samoocenę według standardu OWASP Application Security Verification Standard 5.0. Gdy te niezależne oceny będą gotowe, dodamy je do tej strony. Do tego czasu strona opisuje projekt, a nie certyfikację.
Pełną listę znajdziesz na stronie Co przechowuje LightInventory, a informacje o tym, co obejmuje każdy plan, w cenniku.