Ošetření vstupních proměnných
Z MiS
Pokud v PHP kódu nebo SQL dotazech používáme data, načtená ze vstupu (to je typické pro jazyk PHP), měli bychom si ověřit, že potenciální útočník do dat nezahrnul kód, který by mohl narušit funkci aplikace.
Techniky útoku založené na podsouvání záměrně poškozených dat se nazývají:
- code injection
- code insertion
- cross-site-scripting
Více o těchto tématech například na: TechnicalInfo.net Cross-site-scripting.
Pro základní vyfiltrování podsunutého kódu bychom při čtení vstupu z URL adresy či formulářů a dalších podobných zdrojů měli použít alespoň funkci filter_var
.
filter_var
- Parametry
- vstup ... text, který chceme kontrolovat
- typ filtru ... jaký filtr chceme uplatnit
- Typy filtrů
- FILTER_SANITIZE_FULL_SPECIAL_CHARS ... nahradí všechny speciální znaky z řetězce
- FILTER_SANITIZE_NUMBER_INT ... odstraní znaky, které netvoří čísla
- FILTER_SANITIZE_ENCODED
- FILTER_VALIDATE_BOOLEAN ... převede na logickou hodnotu
- FILTER_VALIDATE_INT ... převede na číselnou hodnotu
Více viz: W3Schools.com → PHP Filter Functions