![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 14.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć
Moim celem jest stworzenie bezpiecznego formularza zbierającego dane osobowe. Zależy mi bardzo na bezpieczeństwie, ponieważ nie chcę, aby wyciekły nr PESEL, nr dowodu osobistego i inne dane. Stronę buduję prawie całkowicie w HTMLu - pomyślałem bowiem, że skoro potrzebuję jedynie formularza otoczonego estetycznymi obrazkami i kilkoma zdaniami wprowadzenia, ze względów bezpieczeństwa nie ma sensu zaprzęgania jakiegoś CMSa. Wysyłam więc do przeglądarki nieco obrazków i statycznych tekstów za pomocą tagów HTML. Pośród tego wszystkiego zrobiłem jeden formularz w PHP, w którym stosuję kilka pół testowych oraz pól typu select (rozwijalnych list). Następny skrypt odbiera te formularze (metodą POST) i: 1. Filtruje:
gdzie metoda filtrujDane wygląda następująco:
Czyli zmienna poddawana jest najpierw funkcji htmlentities a później strip_tags. 2. Następnie dane te porównywane są do wzorca jakiego się spodziewam. W przypadku pól tekstowych:
czyli jeśli zmienna $imie pobrana z POST jest alfanumeryczna, wtedy jeszcze raz pobieram ją z POST i umieszczam w tablicy $clean. Będą w niej znajdować się czyste dane. W przypadku pól select sprawdzam tak:
Czyli jeśli otrzymam wartość 1, 2 lub 3 - jeszcze raz pobieram POSTem i ładuję do tablicy $clean. Muszę teraz zapisać dane w bazie. W tym celu sprawdzam, czy długość zmiennych jest większa od 0 (czyli czy wypełniono wszystkie pola obowiązkowe) i formuje z tego instrukcję INSERT. Zanim to jednak nastąpi, tuż przed umieszczeniem w bazie traktują je funkcją mysql_real_escape_string
aby dodać znaki ucieczki do niebezpiecznych znaków. Dodatkowo nie wyświetlam żadnych zmiennych przez echo, jedynie suche zdanie "Dziękujemy za rejestrację w naszym serwisie" (zdanie to jest w pełni statyczne). Aha. Zrobiłem tak, że strona internetowa wrzuca dane do bazy tymczasowej i tylko do niej ma dostęp. Moderator uruchamiając aplikację do zarządzania danymi zostanie poinformowany o nowych klientach i jeśli wzrokowo będzie z nimi wszystko w porządku, jednym przyciskiem przeniesie je do bazy produkcyjnej. Moderator nie jest niestety informatykiem. Co sądzicie o takich zabezpieczeniach? Ten post edytował lol75 24.05.2013, 15:01:13 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:47 |