SQL inyeksiyası (ing. SQL injection) — zərərli SQL ifadələrinin icra üçün giriş sahəsinə daxil edildiyi (məsələn, verilənlər bazasında olan məlumatları ələ keçirmək üçün) verilənlərə əsaslanan tətbiqlərə hücum etmək üçün istifadə edilən kod yeritmə texnikası.[1][2] Bu hücum texnikasından istifadə edərək hakerlər SQL verilənlər bazasının məzmununu köçürə, dəyişdirə və silə bilərlər. SQL inyeksiyası əsasən veb saytlar üçün hücum vektoru kimi tanınır, lakin istənilən növ SQL verilənlər bazasına hücum etmək üçün istifadə edilə bilər.
SQL inyeksiya hücumları təcavüzkarlara şəxsiyyəti saxtalaşdırmağa, mövcud məlumatlara müdaxilə etməyə, əməliyyatları ləğv etmək və ya balansları dəyişdirmək, rədd etmə problemlərinə səbəb olmağa, sistemdəki bütün məlumatların tam açıqlanmasına, məlumatları məhv etməyə və ya başqa cür əlçatmaz hala gətirməyə imkan verir. Sənəd yönümlü NoSQL verilənlər bazaları da bu təhlükəsizlik zəifliyindən təsirlənə bilər.[3]
2012-ci ildə aparılan bir araşdırmada, orta hesabla veb tətbiqinin ayda dörd hücum kampaniyası aldığı, pərakəndə satıcıların isə digər sənaye sahələrinə nisbətən iki dəfə çox hücum aldığı müşahidə edildi.[4]
SQL inyeksiyasının ilk ictimai müzakirələri təxminən 1998-ci ildə görünməyə başladı;[5] məsələn, Phrack Magazine-də 1998-ci il məqaləsi.[6]
SQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. Any procedure that constructs SQL statements should be reviewed for injection vulnerabilities because SQLi Server will execute all syntactically valid queries that it receives. Even parameterized data can be manipulated by a skilled and determined attacker.
Retailers suffer 2x as many SQL injection attacks as other industries. / While most web applications receive 4 or more web attack campaigns per month, some websites are constantly under attack. / One observed website was under attack 176 out of 180 days, or 98% of the time.