Prywatność i bezpieczeństwo

Podczas tworzenia formularza pracujesz z danymi użytkownika. Przede wszystkim należy zadbać o prywatność i bezpieczny transfer danych użytkowników. Zobaczmy, co można zrobić.

Na początek postaraj się poprosić o jak najmniej danych. Nie proś o dane, których nie potrzebujesz, i zawsze zastanawiaj się, czy potrzebujesz wszystkich danych, których nie potrzebujesz. Mniejsza ilość danych to mniejsze ryzyko, mniejsze koszty i mniejsza odpowiedzialność. Poza tym zmniejszona liczba pól w formularzu sprawia, że jest on mniej złożony, łatwiej go wypełnić i zmniejsza współczynniki porzuceń.

Zawsze używaj protokołu HTTPS, szczególnie na stronach zawierających formularz. Dzięki protokołowi HTTPS dane są szyfrowane zarówno przy przesyłaniu, jak i powrotie do serwera.

Załóżmy, że jesteś w kawiarni i korzystasz z publicznej sieci Wi-Fi. Otwierasz witrynę e-commerce i wpisujesz dane karty kredytowej, by coś kupić. Jeśli witryna korzysta z protokołu HTTP, każdy użytkownik (z odpowiednimi umiejętnościami) korzystający z tej samej publicznej sieci Wi-Fi może zobaczyć dane Twojej karty kredytowej. Jeśli witryna korzysta z protokołu HTTPS, dane są szyfrowane i chronione przed próbami uzyskania do nich dostępu.

Upewnij się też, że wszystkie żądania HTTP w swojej witrynie przekierowują do HTTPS. Dowiedz się więcej o tym, jak przekierować cały ruch do HTTPS.

Pomóż użytkownikom zadbać o prywatność ich danych

W pierwszym module przedstawiliśmy 2 sposoby przenoszenia danych: żądania GET i POST.

W przypadku żądania GET dane formularza są dołączane do adresu URL żądania jako ciąg zapytania. Jeśli prześlesz formularz, który korzysta z żądania GET, przeglądarka doda do historii przeglądania adres URL żądania wraz z danymi formularza. Wygodne, gdy chcesz wyszukać wcześniej przesłane formularze, na przykład formularze wyszukiwania. Zupełnie niezbyt dobrze, jeśli dane wrażliwe są przesyłane i każdy, kto ma dostęp do Twojej historii przeglądania lub sieci lokalnej, może je zobaczyć.

Używaj żądań POST w przypadku wszystkich formularzy, w których można przesyłać dane osobowe lub poufne. Dzięki temu dane będą widoczne tylko dla skryptu backendu, który je przetwarza.

Co z zapisywaniem i przetwarzaniem danych osobowych bezpośrednio w przeglądarce? Możesz użyć pamięci klienta, na przykład localStorage, aby przechowywać osobiste dane w przeglądarce. Jeśli chodzi o ochronę prywatności, jest to gorsze wyniki niż idealne. Pamiętaj, że każdy, kto ma dostęp do Twojej przeglądarki, może odczytać te informacje. Przechowuj tylko zaszyfrowane wartości danych osobowych.

Sprawdź, czy użytkownicy mogą bezpiecznie się rejestrować i logować

Uwierzytelnianie kont użytkowników to złożony problem w kontekście prywatności i bezpieczeństwa. Lepszym rozwiązaniem może być użycie zewnętrznego dostawcy tożsamości zamiast tworzenia własnego bezpiecznego systemu uwierzytelniania.

Dowiedz się więcej o sprawdzonych metodach uwierzytelniania kont i zarządzania hasłami.

Ułatwianie użytkownikom dostępu do danych osobowych

W wielu regionach obowiązują przepisy i regulacje prawne dotyczące ochrony danych i prywatności, w tym ustawa CCPA w Kalifornii i ustawa PDPA w Indiach. Każda witryna dostępna w Unii Europejskiej (UE) musi być zgodna z Ogólnym rozporządzeniem o ochronie danych (RODO), nawet jeśli witryna nie znajduje się w Unii Europejskiej.

RODO określa wytyczne dotyczące gromadzenia i przetwarzania danych osobowych od osób mieszkających na terenie Unii Europejskiej. Do przetwarzania danych osobowych wymagana jest zgoda użytkownika, użytkownicy mogą w każdej chwili poprosić o przechowywane przez Ciebie dane osobowe, a Ty musisz oficjalnie poinformować o wycieku danych. To dobre rozwiązanie dla użytkowników, bo pomaga zapewnić poszanowanie ich prywatności. Dowiedz się więcej o RODO.

Zadbaj o to, aby użytkownicy wiedzieli, jak zamierzasz przetwarzać dane osobowe. Przejrzystość to podstawa zaufania. Użytkownicy powinni zawsze mieć możliwość przeglądania, modyfikowania i usuwania wszystkich zapisanych przez Ciebie danych.

Zapewnienie użytkownikom możliwości aktualizowania swoich danych osobowych

Ułatw użytkownikom aktualizowanie swoich danych osobowych, w tym haseł, adresów e-mail i nazw użytkowników. Informuj użytkowników o zmianach w ich przechowywanych danych i upewnij się, że mogą je cofać. Możesz na przykład wysłać e-maila na poprzedni i nowy adres e-mail, gdy użytkownicy zmienią swój adres.

Ułatw użytkownikom usunięcie konta, w tym wszystkich powiązanych z nim danych, oraz zadbaj o to, aby w odpowiednich przypadkach umożliwić pobieranie danych. Usunięcie konta jest wymogiem prawnym w niektórych regionach.

wymagać dodatkowego etapu uwierzytelniania, np. ponownego wpisywania bieżącego hasła, aby wyświetlić lub zmienić dane osobowe w witrynie;

Dowiedz się więcej o sprawdzonych metodach dotyczących prywatności w aplikacjach internetowych.

Upewnij się, że wszystkie dane są w dobrym stanie

W poprzednim module omówiliśmy weryfikację w frontendzie. Weryfikacja frontendu jest ważna, ale użytkownicy nadal mogą przesyłać nieprawidłowe dane. W kolejnym kroku przed zapisaniem danych w bazie danych musisz też zweryfikować je w backendzie. Dzięki temu w bazie danych nie będą zapisywane żadne nieprawidłowe dane.

Dzięki walidacji mamy pewność, że format danych jest prawidłowy. Pamiętaj jednak, że nadal nie należy ufać danym podawanym przez użytkowników. Jak możesz bezpiecznie przekazać dane? Aby zapobiegać skryptom cross Site Script (XSS) i mieć pewność, że wszystkie dane można bezpiecznie umieścić w kodzie HTML, musisz je oczyścić przed wynikiem.

Dowiedz się więcej o oczyszczeniu danych przed danymi wyjściowymi i w miarę możliwości korzystaj z interfejsu Saanitizer API.

Upewnij się, że wszystkie zgłoszenia pochodzą od prawdziwych osób

Aby lepiej chronić swoje dane, możesz na różne sposoby zapobiegać przesyłaniu spamu przez boty.

Pierwsza opcja to użycie usługi takiej jak reCAPTCHA, która pozwala odróżnić prawdziwych ludzi od botów. Wymaga to umieszczenia na stronie fragmentu kodu JavaScript i dodania dodatkowych atrybutów do przycisku Prześlij.

reCAPTCHA wykonuje różne testy, aby sprawdzić, czy jesteś człowiekiem. Na przykład może poprosić Cię o identyfikację obrazów. Zautomatyzowane oprogramowanie, takie jak bot, nie jest w stanie wykonać tych wyzwań i nie może przesłać formularza.

Garnek z miodem

Inną opcją jest użycie tak zwanego „doniczki” – niewidocznego pola formularza. Ludzie nie zobaczą pola doniczki, ale boty je wypełnią. Backend może sprawdzić, czy pole zostało wypełnione przez skrypt przetwarzania. Jeśli tak, oznacza to, że zgłoszenie pochodzi prawdopodobnie od bota i możesz je zignorować.

Dostępne są też usługi takie jak Akismet, które pomagają w ochronie przed spamem. Działanie filtra Akismet łączy informacje o spamie, który został przechwycony we wszystkich witrynach uczestniczących w programie, a potem wykorzystuje reguły dotyczące spamu do blokowania spamu w przyszłości. Aplikacja Akismet jest w przejrzysty sposób dla użytkowników i wykrywa większość spamu.

Sprawdź swoją wiedzę

Sprawdź swoją wiedzę na temat bezpieczeństwa i prywatności

Jaka jest preferowana metoda przenoszenia danych osobowych za pomocą formularzy?

HTTPS
Gołąb transportowy.
Żądanie GET.
Żądanie POST.

Jak możesz zapobiegać spamowi?

Pole formularza Honeypot.
CAPTCHA
Udostępniaj tylko dania wegetariańskie.
Usługi spamowe.

Zasoby