SQL Injection
এসকিউএল ইনজেকশন
String-concatenation দিয়ে query বানালে attacker input SQL syntax-এ পরিণত হয়ে database-কে অনিচ্ছাকৃত command চালাতে বাধ্য করে।
also: sqli
-- vulnerable:
query = "SELECT * FROM users WHERE name='" + input + "'"
input = "' OR '1'='1"
-- চূড়ান্ত query: SELECT * FROM users WHERE name='' OR '1'='1' ← সব row ফেরত
- মূল কারণ: code (query structure) আর data (user input) একই string-এ মিশে যাওয়া — interpreter আলাদা করতে পারে না কোনটা নির্দেশ, কোনটা মান
- Parameterized query/prepared statement এই মিশ্রণ কাঠামোগতভাবে বন্ধ করে — data আলাদা channel দিয়ে পাঠানো হয়, কখনো syntax হিসেবে parse হয় না
- Command injection, template injection (SSTI) — একই root cause-এর ভিন্ন context-এ প্রকাশ