Loading...
Dacă eşti vizitator şi vrei să te înregistrezi, apasă aici.

Prevenire SQL Injection cu Prepared Statements

Aici vorbim despre CSS, PHP, C++, MySql, Javascript, Java & jQuery.
Avatar utilizator
JustMike
Membru
Mesaje: 22
Membru din: 19 Noi 2014, 21:26
Țara de origine: Romania
Nume Real: Mihai
Nivel cunoştinţe IT: 10
Status: Neconectat

Prevenire SQL Injection cu Prepared Statements

Mesajde JustMike » 20 Noi 2014, 14:51

Ok, in acest articol am sa va arat cum sa prevenim bine cunoscuta metoda de atac (SQL Injection) asupra unui website cu Prepared Statements.

Conexiunea la baza de date

Cod: Selectaţi tot

$mysqli = new mysqli("HOST", "USER", "PASS", "DB");

Sanitizing pentru id-ul preluat din GET, presupunand ca trebuie sa extragem din baza de date informatii folosindu-ne de un ID

-Aici puteam folosi mai multe metode:
$id = (int)$_GET['id']; //daca id-ul trabuia sa fie neaparat INT
puteam cu un if de forma if( is_numeric($_GET['id']) ){ ... } si asa mai departe

Cod: Selectaţi tot

$id = mysqli_real_escape_string($mysqli, $_GET['id']);

-"prepararea" query-ul in sine

Cod: Selectaţi tot

$query = $mysqli->prepare("SELECT * FROM `TABLE` WHERE `id`= ?");

-Setarea parametrilor

Cod: Selectaţi tot

$query->bind_param('i',$id); // am presupus ca valoarea $id-ului este Integer.

-executarea query-ului

Cod: Selectaţi tot

$query->execute();

-Preluarea datelor de tip RESOURCE

Cod: Selectaţi tot

$result = $query->get_result();

-Si evident folosirea datelor

Cod: Selectaţi tot

if($result) {
   $row = $result->fetch_assoc();
}


Codul complet, fara intreruperi pe PasteBin: http://pastebin.com/CAarYcRU
Best Movies Community : Recomanda-Film!

Înapoi la “CSS, PHP, C++, MySql, Javascript, Java & jQuery”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator

cron