Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Created July 4, 2026 22:20
Show Gist options
  • Select an option

  • Save thinkphp/69a11ac27bb8d6221201fe6673ba7b03 to your computer and use it in GitHub Desktop.

Select an option

Save thinkphp/69a11ac27bb8d6221201fe6673ba7b03 to your computer and use it in GitHub Desktop.
SQL Injection
"SELECT * FROM Countries WHERE country_name = '" + input_python + "'"
WHERE country_name = '' OR '1' = '1' returneaza toate randurile
input_python " Portugalia'; DROP TABLE Countries"
O aplicatie are un formular de cautare a unei tari , iar codul din spate python
country = request.form['country'];//vine direct de la utilizator , netratat
query = "SELECT * from countries where country_name = '+"country"+'"
cursor.execute(query);
//country => Canada; DROP table countries
query = "SELECT * from countries where country_name = 'Canada; DROP table countries'"
Sql injection reprezinta una dintre cele mai frecvente si mai vechi vulnerabilitati din securitatea aplicatiilor WEB, fiind printre principalele riscuri de securitate. Aceasta apare atunci cand o aplicatie construieste o comanda SQL folosind date introduse de utilizator, fara a le separa corespunzator de codul executabil catre baza de date. Rezultatul este ca un atacator poate modifica intentia initiala a interogarii (SQL query), obtinand acces neautorizat la date, sau in cazurile cele mai grave compromitand complet serverul de baze de date.
Metode de prevenire:
- interogari parametrizate (prepared statements); parametri introdusi de utilizator sunt transmisi separat de textul comenzii SQL, driverul bazei de date garantand ca acestia sunt tratati exclusiv ca date, niciodata ca un cod executabil. Aceasta este cea mai eficienta si recomandare metoda de protectie.
- proceduri stocate cu parametri tipizati: folosirea parametrilor IN/OUT tipizati(fara construirea dinamica a SQL-ului prin concatenare) ofera un nivel de protectie similar ca si interogarile parametrizate
- Utilizarea ORM (Object-Relational Mapping): SQlAchemy, Hibarnate sau Entity FRamework
https://www.sqlalchemy.org/
https://hibernate.org/
clasa
---> OOP -> mostenire, polimorfism, abstractizare, incapsulare
JAVA Basic;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment