Autor Zpráva
keeehi
Profil *
Ahoj,
mohl by mi někdo poradit, jak ošetřit vstupy GET a POST, aby mi nikdo nedělal na stránkách nějaké problémy. A jestli nebude vadit, kdyř dám ošetření do funkce. např.:
$promena = funkce1(funkce2($_GET["xxx"]));

SESSION a COOKIES zatím nepoužívám, ale jak moc je potřeba je ošetřit.
klingac
Profil
GET, POST aj COOKIE musis osetrit hlavne proti SQL Injection. V pripade ze sa tieto data budu zaroven aj vypisovat niekam na stranku (co sa asi budu), tak ich musis pri vypise na stranku osetrit proti cross site scriptingu (XSS)

co sa tyka ostrenia SESSIONs tak treba davat bacha na session hijacking a session fixation. docitat sa o tom mozes napr. tu a prakticku ukazku mas tu
keeehi
Profil *
díky. jdu studovat
bohyn
Profil
$promena = funkce1(funkce2($_GET["xxx"]));

osetreni fcema je v poradku, zalezi co posilas za data. U cisel treba kontrolovat povoleny rozsah (kdyz ocekavas cislo stranky tak aby se uzivatel neocitnul mimo existujici stranky). Pokud vkladas stringy primo do stranky pouzivej htmlspecialchars() pripadne jeste s druhym parametrem ENT_QUOTES pokud vkladas do atributu kde pouzicas jednoduche uvozovky.
Pred vkladanim do databaze pouzivej u stringu mysql_real_escape_string() nebo mysql_escape_string() a u cisel se ujisti ze to jsou cisla (int) atd.
SESSIONS jsou pomerne bezpecne, COOKIES ne
DoubleThink
Profil *
Pokud bych to měl zobecnit, počítej se špatným vstupem a pokud je vstup dále vyhodnocován (například v SQL), je třeba ošetřit řídicí znaky, jako uvozovky, apostrofy, ostré závorky a podobně - podle cílového prostředí.
keeehi
Profil
proč ošetovat vstup mysql_real_escape_string() nebo mysql_escape_string() a né addslashes?
bohyn
Profil
keeehi
mysql_real_escape_string() - ti oseri retezec primo v kodovani v jakem je spojeni s databazi. A osetruje jeste jine znaky nez jen uvozovky:

Escapes special characters in the unescaped_string , taking into account the current character set of the connection so that it is safe to place it in a mysql_query(). If binary data is to be inserted, this function must be used.

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.

This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.

Zdroj

Proste je na to stavena :)

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:

0