Created
July 4, 2026 22:20
-
-
Save thinkphp/69a11ac27bb8d6221201fe6673ba7b03 to your computer and use it in GitHub Desktop.
SQL Injection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "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