Duo Fantasio

Duo Fantasio este o agentie de organizare de nunti in Cluj Napoca, mereu in tema cu ultimele tendinte in aranjamente florale, ameranjari si decoratiuni pentru nunta. Pentru a va convinge va invitam sa vedeti galeria de poze, serviciile si chiar sa cereti o estimare a costurilor de nunta.

vezi proiect

JR Jewelers

Bijuteria online JR Jewelers are acum un design profesional. Supus unei reconstructii intensive site-ul prezinta o structura noua si un design impecabil. Conceput in concordanta cu produsele de inalta calitate pe care le comercializeaza, site-ul este mult mai atragator si usor de navigat.

vezi proiect

Urmariti ultimele noastre realizari

ianuarie 3, 2010 Cum sa evitam atacurile SQL Injection?

Ce este SQL injection?

SQL injection este un atac asupra bazelor de date a website-urilor dinamice si nu numai. O baza de date permisiva si nesecurizata este usor expusa acestor tipuri de atacuri la nivel de aplicatie.

Un simplu exemplu pentru un astfel de atac este atacul asupra unui formularul de login. Asupra acestui formular se poate injecta un cod SQL care sa modifice anumite date in baza de date sau sa extraga informatii private.

Daca vrem sa ne logam intr-un cont cu usernameul, un exemplu "vasile" insa in loc de "vasile" introducem "vasile';DROP TABLE users; SELECT * FROM data WHERE 't' = 't".

Cum se va forma in baza de date comanda SQL?

SELECT * FROM users WHERE name = 'vasile';DROP TABLE utilizatori; SELECT * FROM DATA WHERE 'x' = 'x';

Consecinta? Unde o fi tabela Utilizatori? Raspunsul inevitabil: Nu este!

Cum sa protejam baza de date?

  • Este indicat sa folosim useri cu privilegii limitate. Nu e indicat sa ne conectam ca superuseri sau ca alt utilizator ce poate manipula mai multe baze de date, nu numai cea in discutie.
  • Trebuie introduse functii de validare, de la cele mai simple, pe variabile, si pana la expresii regulate.
  • Pentru inputuri numerice este indicat sa folosim functia "is numeric()".
  • Pentru valori numerice putem folosi functia "string escape" specifice SGBD-ului.
  • Nu trebuie sa afisam informatii specifice bazei de date, precum schema.
  • Trebuie sa evitam posibilitatea introducerii de caractere precum: ghilimele simple, ghilimele duble, slash, backslash, punct si virgula, caractere extinse precum NULL, linie noua, etc. in toate stringurile de input pentru utilizatori, parametri in URL si valori din cookie.
inapoi sus