PDO::PARAM_INT problem |
PDO::PARAM_INT problem |
6.02.2018, 14:47:10
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 18.11.2017 Ostrzeżenie: (0%) |
Witam, mam takie zapytanie
i zauwazyłem, ze nie ma roznicy czy zmienie PARM_STR na INT. jak zmienna profil = "lol" to wypisze ja z bazy, a jak nazywa sie 222 to również wypisze. Co robię nie tak i jak zrobić żeby to filtrowanie zaczęło wypisywać mi tylko inty? |
|
|
6.02.2018, 15:04:29
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nie wiem czego oczekujesz ale jedyne co to robi, to konwertuje bool na long. Rzutuj to na int $profil = (int) $_GET['profil']; albo zrób poprawną walidację.
-------------------- |
|
|
6.02.2018, 15:06:25
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Bidnowanie z tego co pamiętam powoduje że mysql robi castowanie na okreslony typ. Więc wpisując `lol` jako parametr dla INT spowoduje że MySQL zrobi CAST do wartości numerycznej. Ręki nie dam sobie uciąć za to.
|
|
|
6.02.2018, 15:08:46
Post
#4
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 18.11.2017 Ostrzeżenie: (0%) |
Dzieki. myslalem, ze to jest do filtrowania zmiennych. Czyli musze robić (int) $_GET['profil'].
A jak zrobic prawidłową walidacje? o co w ogole chodzi? |
|
|
6.02.2018, 15:14:49
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Warto sobie dodać, ja zawsze zapominam.
https://github.com/php/php-src/blob/a7fe257...pdo_stmt.c#L305 https://prophp.pl/advice/show/25/jak_zabezp...ql_injection%3F Akurat w tym wypadku rzutowanie wystarczy ale możesz sprawdzić np regexpem czy podana wartość to [1-9][0-9]* -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 09:52 |