[MySQL][PHP] Formularz zabezpieczenia |
[MySQL][PHP] Formularz zabezpieczenia |
5.06.2019, 19:55:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 3 Dołączył: 4.06.2010 Ostrzeżenie: (0%) |
Witam otóż że dalej rozwijam swoją wiedzę i każdy mnie na tym forum zna mam do was nowe pytanie mam prosty formularz POST który przesyła np: skille do bazy danych i jak pewny użytkownik daje radę podmieniać te wartości pobrane z bazy i wpisywać swoje i wysyłać je do skryptu jak to zabezpieczyć ? Przykład skryptu
podobnie jak większość formularzy czyli on zmieni sobie cene i skrypt pobierze inna cene jak się w tym uporać Ten post edytował mrk9109 5.06.2019, 19:56:53 |
|
|
5.06.2019, 20:08:38
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 451 Pomógł: 6292 Dołączył: 27.12.2004 |
No bo takich rzeczy jak cena czy inne, ktorych user nie powinien edytowac, to sie nie umieszcza w formularzu i tyle. Przeciez cene znasz za ile cos tam ma byc to po grzyba dajesz to jako pole forma? Wyswietlaj tylko by user widzial jaka cena i juz. Z forma tego nie pobieraj
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
5.06.2019, 21:45:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Nigdy nie ufaj temu co wpisze użytkownik w formularzu. Zawsze traktuj Input jak potencjalne zło
|
|
|
6.06.2019, 06:13:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Podstawiasz dane z POST do zapytania. Najgorsze co możesz zrobić. Poczytaj https://prophp.pl/advice/show/25/jak_zabezp...ql_injection%3F
-------------------- |
|
|
6.06.2019, 19:11:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 3 Dołączył: 4.06.2010 Ostrzeżenie: (0%) |
Dzięki czyli tylko wyświetlać ile co kosztuje a cenę znów pobrać z bazy danych a nie przesyłać przez post
Tak samo mam z nagrodami muszę wszystko przerobić Ten post edytował mrk9109 6.06.2019, 19:12:32 |
|
|
6.06.2019, 20:57:50
Post
#6
|
|
Grupa: Zarejestrowani Postów: 129 Pomógł: 13 Dołączył: 29.03.2012 Ostrzeżenie: (0%) |
Nic nie stoi na przeszkodzie, żebyś wrzucał dane z $_POST do zapytań MySQL ale to trzeba zwalidować czyli sprawdzić czy cena to cena, w przypadku oczekiwania wartości typu string należy zastosować regex aby wyeliminować niebezpieczne znaki. PHP posiada funkcje filtrujące, o których możesz poczytać tutaj ale przetwarzając dane $_POST musisz dodatkowo sprawdzać czy indeks tablicy, którego oczekujesz w ogóle istnieje. Najbezpieczniej jest pobierać dane z sesji ale tam powinno się trzymać przydatne informacje, które zawsze będą wykorzystywane. Najlepszy sposób to pobieranie danych z bazy po id rekordu. Jest też możliwość przekazywania id metodą $_GET i to głównie umieszcza się w pasku adresu jeśli chcemy pobrać wszystkie informacje związane z danym rekordem. Odnośnie metody $_POST to proponowałbym użyć zamiast niej zmiennej $_REQUEST dlatego, że ta zmienna obejmuje jednocześnie dane tablicowe
$_GET i $_POST czyli przy sprawdzaniu co indeks istnieje robisz if(isset($_REQUEST['nazwa']) itd. Polecam poczytać o uproszczeniach w instrukcjach warunkowych co może zmniejszyć ilość kodu i ułatwić trochę życie. Warunek który wypisałem można uprościć:
Ten post edytował emillo91 6.06.2019, 20:59:25 |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 14:16 |