Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Walidacja nazw pól w formularzu
wpaski
post 30.10.2017, 13:21:08
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


Wszędzie przy walidacji (w różnych aplikacjach) widzę, że skupia się ona na "wartościach" formularza ("value")
Natomiast moje pytanie dotyczy "name" np. inputa, czy też należy sprawdzać czy dany formularz ma dokładnie te pola które nas interesują? Czy istnieje jakieś niebezpieczeństwo jeśli to ominiemy? np. są pola w formularzu imie, nazwisko, email i jeśli ktoś ustawił np. dane POST na name="email_swoje_pole" to ... no wlasnie co wtedy, powinien być błąd jak rozumiem
Czy jeszcze coś należałoby sprawdzać przy wysyłce formularza oprócz "value" i "name" ? Czy wystarczy sprawdzać "value" a resztą się nie przejmować? Wiem, że dużo zależy od sposobu zbudowania danej aplikacji/skryptu ale pytam o ogólne stosowane zasady.


Jeśli napisałem nie jasno, to w skrócie chodzi mi o to, czy warto się przejmować sprawdzaniem czy ktoś nie zmienił lub nie dodał klucza w tablicy $_POST.
Pozdrawiam.

Ten post edytował wpaski 30.10.2017, 13:31:48
Go to the top of the page
+Quote Post
markonix
post 30.10.2017, 13:36:36
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


O ile nie ładujesz tego bezpośrednio do bazy albo robisz to wcześniej filtrując to nie ma zagrożenia.
https://en.wikipedia.org/wiki/Mass-assignment_protection


--------------------
Go to the top of the page
+Quote Post
trueblue
post 30.10.2017, 13:38:03
Post #3





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli ktoś zmieni nazwę pola na nieistniejące, to oryginalnego po prostu nie dostaniesz, więc walidacja nie przepuści takich danych.
Jeśli ktoś zamieni nazwy pól o znacząco różnych walidatorach, to też ich nie przepuści.
A jeśli ktoś zamieni nazwy pól delikatnie się różniące, np. imię i miejscowość, to równie dobrze użytkownik może wpisać w te pola zamienne wartości i efekt będzie taki sam - czego nie unikniesz.


--------------------
Go to the top of the page
+Quote Post
wpaski
post 30.10.2017, 19:13:59
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


Czyli jak dobrze rozumiem nie ma się o co martwić ale, tylko w przypadku jeśli oczekuję danych z konkretnych pól natomiast problem pojawia się gdy zakładam, że wszystkie pola które podsyła użytkownik w formularzu są dokładnie takie jak oczekuję, podsumowując, trzeba ustalać pola w poleceniu SQL UPDATE i jednak dla bezpieczeństwa ustalić, że dla danego formularza obowiązuje zestaw danych pól?

z tego co znalazłem jest to poruszone w laravelu
https://stackoverflow.com/a/22279580
i też tutaj
po czesku ale z kodu w miarę wiadomo o co chodzi:
https://devblog.cz/2012/03/mass-assignment-v-php/
Go to the top of the page
+Quote Post
markonix
post 31.10.2017, 00:40:53
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Tak, Laravel ma w standardzie w Eloqent whitelist (zalecany, choć wymaga więcej czasu) i blacklist nazw zmiennych, które lecą do insert/update.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 06:56