Ošetření vstupních proměnných

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Vytvoření stránky)
 
(Příklad filtrování)
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]][[Category:PHP]]
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]][[Category:PHP]]
 +
 +
== Proč bychom měli proměnné ošetřit? ==
  
 
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.
 
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.
Řádka 6: Řádka 8:
 
* code injection
 
* code injection
 
* code insertion
 
* code insertion
* cross-site-scripting
+
* cross-site-scripting (CSS — nepleťte s kaskádovými styly)
  
Více o těchto tématech například na: [http://www.technicalinfo.net/papers/CSS.html TechnicalInfo.net Cross-site-scripting].
+
Více o těchto tématech například na: [http://www.technicalinfo.net/papers/CSS.html 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 <code>filter_var</code>.
 
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 <code>filter_var</code>.
  
 
== filter_var ==
 
== filter_var ==
 +
Funkce se snaží nahrazovat „podezdřelé“ znaky (takové, které by mohly být zneužity k útoku) jejich bezpečnými alternativami.
 +
 +
<div class="Priklad">Třeba znak &lt;, který by mohl být použit k vložení značek HTML, nahradí za HTML element &amp;lt;, který se zobrazí stejně, ale značku s ním vložit nelze.</div>
 +
 
; Parametry
 
; Parametry
 
* vstup ... text, který chceme kontrolovat
 
* vstup ... text, který chceme kontrolovat

Verze z 5. 5. 2014, 05:18


Proč bychom měli proměnné ošetřit?

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í:

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

Funkce se snaží nahrazovat „podezdřelé“ znaky (takové, které by mohly být zneužity k útoku) jejich bezpečnými alternativami.

Třeba znak <, který by mohl být použit k vložení značek HTML, nahradí za HTML element &lt;, který se zobrazí stejně, ale značku s ním vložit nelze.
Parametry
Typy filtrů

Více viz: W3Schools.com → PHP Filter Functions

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje