Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JS w kodzie źródłowym a bezpieczeństwo
Forum PHP.pl > Forum > XML, AJAX
Rid
Mam walidacje zarówno po stronie klienta jak i serwera.
Zajrzałem wczoraj do swojego kodu źródłowego i się lekko przeraziłem widząc jak w kodzie tym js wypluwa wszystkie dane jak i operacje obiektów przerabiane przez js-wszystkie wyrażenia regularne używane do walidacji,nazw,id walidatorów jak i
inputów ,które są walidowane ,są widoczne jak na dłoni dla potencjalnego "użyszkodnika" w kodzie źródłowym.

Mam ,takie pytanie czy użyć javascript obfuscation ,czy lepiej użyć Ajaxa który ,będzie pobierał dane z inputa wysyłał na serwer,gdzie funkcja zwaliduje i zwróci wynik spowrotem do Ajaxa ,który wyświetli odpowiednie komunikaty po stronie
klienta.Wiem,że to będzie generowało dodatkowy ruch na stronie ,ale chyba nie powinny być widoczne w kodzie źródłowym wyrażenia regularne które są ,po stronie serwera.
krowal
To zależy do czego tych wyrażeń używasz, jeśli jest to sprawdzenie poprawności maila lub adresu url to czemu miałbyś to chować, są to tak popularne regexpy że nikt nawet nie zajrzy w kod żeby ci je 'ukraść' smile.gif . Jeśli zaś chcesz swoje super extra wyrażenia zachować w tajemnicy to rób to AJAX'em tak jak napisałeś.
Rid
Cytat
jeśli jest to sprawdzenie poprawności maila lub adresu url to czemu miałbyś to chować, są to tak popularne regexpy że nikt nawet nie zajrzy w kod żeby ci je 'ukraść'


Byłoby dobrze gdyby ktoś tylko chciał ukraść -nie miałbym nic przeciwko temu gdyby wykorzystał to do swoich celów,
ale jakby szukał "dziury"w całym,to miałby wszystko podane na tacy.
Walidacja ,to jedna z najważniejszych metod poprawiających bezpieczeństwo naszej strony,dlaczego ma być widoczna w kodzie źródłowym?questionmark.gif?Czemu ,dowolna osoba ma wiedzieć jakich regexów używamy i do jakich inputów?questionmark.gif?Widzi wtedy co i jak jest zabezpieczone,szuka słabych punktów i jak znajdzie to,już chyba można tylko płakać.
Nie widząc tego,strzela wtedy w ciemno,jest to chyba jakaś forma dyskomfortu dla niego.
krowal
Ja swoją walidację mogę pokazać każdemu, nawet tą po stronie serwera bo jestem pewien co do jej działania. Jeśli ty nie jesteś pewien i uważasz, że można znaleźć w niej dziurę to znaczy że źle to zroiłeś i nawet niepokazywanie kodu użytkownikom nie uchroni cię w pełni przed planowanym atakiem smile.gif
#luq
Ja bym wykorzystał oba sposoby - obfuscation i ajaxa. Natomiast tak jak @kowal pisze, jeśli wyrażenia regularne masz dobrze przemyślane to nie powinieneś się obawiać publikacji kodu. Jedyna obawa jest taka, że nie znasz jakiegoś smaczka językowego, gdzieś w samym języku jest luka. Prostym przykładem może być http://gynvael.coldwind.pl/?id=360.

Ajaxa wykorzystałbym tylko z wygodnictwa. Jeśli nie masz biblioteki do walidacji formularzy w PHP i porta jej na JS to musiałbyś takiego porta zrobić... Jeśli Ci zależy na czasie, formularz nie jest głównym elementem strony to wysyłasz jedynie requesta do skryptu po stronie serwera. Co do zaciemniania kodu to jeśli Ci zależy, jak sama nazwa wskazuje, na zaciemnianiu kodu to to rób.
Rid
Cytat
Jeśli ty nie jesteś pewien i uważasz, że można znaleźć w niej dziurę to znaczy że źle to zroiłeś i nawet niepokazywanie kodu użytkownikom nie uchroni cię w pełni przed planowanym atakiem.


Nie testowałem jeszcze całości ,więc mam lekkie obawy,po za tym chyba będzie bardziej bezpieczne jak kod będzie ukryty.
To tak jak z powiedzeniem:
Cytat
"Co mnie nie zabije, to mnie wzmocni."
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.