Autor Zpráva
Peťo
Profil *
Ahoj,

rozmýšľam ako ošetriť URL proti rôznym druhom utokov. Najskôr som si vytvoril funkciu, ktoreou si ošetrujem parametre:

function safeClean($n) {
    // $n = trim($n);
    $n = preg_replace('/\s+/', '', $n);

    if (get_magic_quotes_gpc()) {
        $n = stripslashes($n);
    }

    $n = mysql_real_escape_string($n);
    // $n = htmlentities($n);
    $n = strip_tags($n);

    return $n;
}

potom ma vsak napadlo celu URL skontrolovať regulárnym výrazom a nechať v nej len naozaj to, co moze v URL byť, (teda v mojom prípade v kombinacií s RewriteEngine On) je to alfanumericke znaky + "-" a "/"

$url_param= ereg_replace("[^a-z0-9/-]", "", $_GET['seo_nazov'] );

Čo myslíte, je tento spôsob bezpečný?

Este spomeniem ze v htaccess mam RewriteRule (.*) index.php?seo_nazov=$1 [QSA,L], a v PHP si tu premennu rozbijem podla "/" a nasledne zisťujem o akú stránku ide.

Ďakujem,
Str4wberry
Profil
Proti čemu chcete URL chránit?
Peťo
Profil *
Proti sql injections, xss..
Nox
Profil
Escapování je zabránění interpretování hodnoty v nějakém kontextu ... nejde na hodnotu předem univerzálně naplácat všechny funkce a počítat, že to tak bude fungovat. Escapuje se vždy v nějakém kontextu. Pokud to dávám do SQL tak při tom použiju mysql_real_escape_string, pokud to dávám do HTML tak buď htmlspecialchars (pokud nemají být interpretovány tagy) případně strip_tags (jde použít ten whitelist tagů, 2. parametr), pokud dávám hodnotu do url tak urlencode atd.

Víc na http://phpfashion.com/escapovani-definitivni-prirucka
Peťo
Profil *
Ďakujem, takéto niečo som hľadal.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: