Tuesday April 27, 2010 16:56

PHP/MySQL – Metoda de scapare de injectiile SQL

Posted by Samuel Marian

Am sa va demonstrez foarte repede cum se poate scapa de injectile SQL.

Deci, hai sa spunem ca avem un formular ca acesta este de pe index.php:

?Download index.php
<form action="insereaza.php" method="POST">
<fieldset>
<legend>Detalii<legend>
<div>
<label>Nume:</label>
</div>
<div>
<input type="input" name="nume" value="Maribol" disabled="disabled" />
</div>
<div>
<label>Prenume:</label>
</div>
<div>
<input type="input" name="prenume" value="Labs" disabled="disabled" />
</div>
<div>
<label>Email:</label>
</div>
<div>
<input type="input" name="email" value="admin@mlabs.info" disabled="disabled" />
</div>
<div style="margin-top:10px;">
<input disabled="disabled" type="submit" value="Trimite" />
</div>
</fieldset>
</form>
Detalii

Actiunea formularului se petrece in: insereaza.php, asa ca orice metoda folosesti POST sau GET va fi pasata catre el.

Acum, inainte ca sa inseram datele in baza de date, trebuie sa ne asiguram ca datele sunt sigure pentru inserare.

Functia PHP care ar trebui sa o folosesti este: mysql_real_escape_string.

Acum, poti trece prin aceasta functie variabilele trimise de formular. Sa zicem ca formularul are metoda:POST

?Download inserare.php
<?php
$_POST['nume'] = mysql_real_escape_string($_POST['nume']);
$_POST['prenume'] = mysql_real_escape_string($_POST['prenume']);
$_POST['email'] = mysql_real_escape_string($_POST['email']);
?>

Dar aceasta functie nu este destul de eficienta deoarece sa presupunem ca dvs. aveti mai multe campuri la formular, iar aceasta functie trebuie repetata pentru fiecare camp.

Aici este o metoda mai buna de a “curata” campurile:

foreach(array_keys($_POST) as $cheie)
{
  $curata[$cheie] = mysql_real_escape_string($_POST[$cheie]);
}

Iar acum toate variabilele postate sunt “curatate” de bucla foreach. Iar acum valoarea _POST a fost redenumita in $curata.

De exemplu:

echo $curata['nume'];
echo $curata['prenume'];
echo $curata['email'];

Comment Form

Advertising

creare site

Categories

Twitter Updates

    Statistics

    Filme 2010