RSS Feed RSS
Intrebari si raspunsuri

SQL injection

Versiune textVersiunea text |
Vazut de: 479 ori | Cuvinte: 332


Una dintre cele mai grave probleme de securitate web este SQL injection. Simplu spus, este posibilitatea executarii de comenzi SQL prin alterarea parametrilor paginilor. Problema este grava pentru ca altereaza date permanent salvate in baze de date care pot varia de la caz la caz: nume, parole, date confidentiale, chiar credit carduri, etc.

SQL injection apare datorita neverificarii parametrilor utilizati in comenzi SQL. De exemplu sa presupunem ca avem (pagina.xxx):

- PHP:

<?php ...
mysql_query("SELECT * FROM Tabela WHERE id=".$_GET['id']);
... ?>


- ASP:

<% ...
conexiune.Execute "SELECT * FROM Tabela WHERE id=" & Request.QueryString("id")
... %>


Pentru aceste cazuri daca cineva in loc de pagina.xxx?id=1 cheama
pagina.xxx%3Fid%3D1%3BDELETE+%2A+FROM+Tabela
ceea ce inseamna
pagina.xxx?id=1;DELETE * FROM Tabela
surpriza o sa fie de proportii.

In acest fel se pot executa si alte comenzi SQL nu doar DELETE.

Intervin citeva probleme:

- Trebuie cunoscut numele tabelelor sau cimpurilor sau gasite comenzi SQL care nu depind de numele tabelelor (folosit la modul general sau tabelele standard ale bazei de date)

- Pagina web sa nu faca nici un fel de verificari a parametrilor.

Dupa cum se poate vedea toata aceasta problema dispare daca avem

<?php ...
mysql_query("SELECT * FROM Tabela WHERE id=".intval($_GET['id']));
... ?>


- ASP:

<% ...
conexiune.Execute "SELECT * FROM Tabela WHERE id=" & val(Request.QueryString("id"))
... %>


Mai trebuie facuta o observatie: parametri alterati pot veni nu doar din URL (GET) ci si POST sau cookie sau chiar valori inregistrate in baza de date pt. diverse informatii (semnatura alterata, adresa, etc.)

Asa ca orice web developer constient de posibilele probleme puse de SQL injection si care ia masuri impotriva acestei probleme le poate evita relativ usor.



Raspunsuri Raspunsuri date:

Niciun raspuns.

Trimite un raspuns:

Nu aveti permisiunea de a raspunde. Trebuie sa va logati aici pentru a scrie un raspuns.

Mai multe articole din aceeasi categorie:

SQL injection
Afisarea informatiilor despre vizitator
Cum se valideaza cnp?
Idei utile pentru securitatea paginilor web
Afişarea cursului valutar