Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP][JavaScript]Walidacja formularzy - w JS czy w PHP ?
Forum PHP.pl > Forum > Przedszkole
Wiktor P.
Witam!

Ostatnio dużo się nasłuchałem, że formularze powinno się walidować przez JavaScript lub AJAX.
To zapewnia przede wszystkim sprawdzenie formularza, zanim strona się przeładuje.
Ale jest jedno 'ale': mianowice, co jeśli JS będzie w przegladarce wyłączone ?
Czy lepiej jest walidować formularze po stronie przegladarki, czy po stronie serwera ?
Co myślicie ?
erix
Najlepiej walidować oba naraz. W JS - dla wygody użytkownika, w PHP - dla bezpieczeństwa.
vokiel
Z walidacji po stronie serwera nie rezygnujesz nigdy(!). Możesz dodatkowo weryfikować w js po stronie przeglądarki, jako bonus. Ale po stronie serwera weryfikujesz zawsze, każde dane pochodzące od użytkownika są potencjalnie niebezpieczne.
Pilsener
1. Można walidować tylko po stronie użytkownika jeśli są to dane, których złe wprowadzenie nie wpływa na bezpieczeństwo skryptów/bazy a jedynie na samopoczucie samego użytkownika, choćby pisownia imion/nazwisk, po co ktoś miałby obchodzić zabezpieczenia by przemycić do bazy nazwisko z małej litery? Mając dobry framework powinniśmy takie rzeczy załatwiać automatycznie, np. tworzymy input o nazwie "pole24_nazwisko" i automatycznie nam to waliduje jako nazwisko w PHP czy JS. Oczywiście to żadne zabepieczenie, bo wystarczy zmienić nazwisko na np. nrtel czy skasować i już można przemycić co innego, ale taką walidację robimy szybko i łatwo właśnie dla wygody użytkownika zakładając, że nie będzie on sabotował własnego systemu.

2. Lepiej jest robić wszystko w PHP, tak jest moim zdaniem łatwiej i zawsze działa niezależnie od przeglądarki i tego, czy user ma wyłączoną obsługę JS czy nie. Nieprzewidywane jest też działanie różnego rodzaju add- blokerów. W JS tylko różnego rodzaju nakładki/ulepszenia nie wpływające na podstawową funkcjonalność.
erix
Cytat
dla wygody użytkownika zakładając, że nie będzie on sabotował własnego systemu.

I to jest błędne założenie - należy zakładać, że KAŻDY użytkownik chce uwalić naszą aplikację. Smutna prawda, ale jeśli zabezpieczenia mają być dobre, to trzeba wyjść z jak najgorszego założenia.

Analogicznie do everybody lies. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.