Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Bezpieczeństwo formularza
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam dawno mnie tu nie było otóż mam pytanie odnośnie bezpieczeństwa formularza , mam napisany prosty kod który pobiera dane przesłane za pomocą metody POST i znalazł się użytkownik który edytuj sobie te dane na takie wartości jakie mu się podobają . I moja pierwsza myśl przepisać każdą zakładkę aby pobierał dane z bazy danych lecz było by to sporo roboty bo kodu jest dużo i znalazłem w sieci atrybut "readonly" tylko do odczytu i moje pytanie brzmi czy to rozwiąże mój problem ? jeżeli do każdego pola inpunt dodam to ? zablokuje mu to możliwość edycji pola inpunt które na dodatek jest hidden .
nospor
Zasada jest banalnie prosta - zapamietaj ja:
Wszystko co jest w przegladarce, jest do zmiany. Zadne readonly tu nie pomoze.

Jesli wiec jakas dana nie jest to edycji, to w zaden sposob jej nie wkladaj do forma a juz tym bardziej nei czytaj jej z forma. I juz
mrk9109
to chciałem wiedzieć czyli biorę się za przepisywanie smile.gif
viking
Weź też pod uwagę że nawet nie potrzeba przeglądarki żeby cokolwiek wysłać - to tylko graficzna nakładka na żądania które w dowolnej przeglądarce możesz jednym klikiem wyeksportować.
Poczytaj też https://prophp.pl/advice/show/25/jak_zabezp...ql_injection%3F
mrk9109
używam mqsli biorę się za naukę dopiero PDO , ale mam jeszcze inne pytanie wszystkie dane mam już w bazie w formularzu mam jedynie id danego "mechanika" i teoretycznie i ten użytkownik może sobie zmienić z pola hidden id np: z 1 na 4 i wtedy pobierze mu dane innego mechanika ? jak to jeszcze ominąć

  1. <input type="hidden" name="id" value="<?= $id ?>" readonly>
viking
Nie znam logiki projektu. Czy user może odczytać tylko swoich mechaników czy wszystkich? Jeśli pierwsze to w bazie powinieneś mieć odpowiednie powiązanie po id.
mrk9109
dzięki wrzuciłem jeszcze jedno zapytanie które sprawdza czy użytkownik ma wystarczająco punktów by podpisać kontrakt z swoich mechanikiem więc nawet jak zmieni id to te zapytanie go nie puści . Myślę że tego już nie przeskoczy i ciekawy artykuł mi dałeś mam do niego jedno pytanie co da mi taki zapis ?

  1. $id = (int) $_POST['id'];
nospor
Jesli dana wartosc ma byc liczba (INT) to bedziesz mial pewnosc ze to bedzie zawsze liczba a nie jakis tekst i/lub sql injection
viking
  1. var_dump((int) 'aaa');
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.