SQL injection
Versiunea 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 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 injectionAfisarea informatiilor despre vizitator
Cum se valideaza cnp?
Idei utile pentru securitatea paginilor web
Afişarea cursului valutar
