KavLabs
خانهبلاگ
KavLabs

یادداشت‌هایی از ذهن‌های کاوشگر، برای ذهن‌های کنجکاو

پرهام·پرهام·زال·زال·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
نوشته‌هادسته‌بندی‌هاجستجوی پیشرفتهلاگ تغییرات

©۲٬۰۲۶ KavLabs — تمام حقوق محفوظ است

ساخته‌شده با عشق توسط پرهام و زال

واژه‌نامه
۰۴ اسفند ۱۴۰۴OWASP Top 10متوسطزبان: فارسی

تزریق اس‌کیو‌ال(SQLi)

متوسطنسخه انگلیسی

آسیب‌پذیری که به مهاجمان اجازه می‌دهد دستورات SQL مخرب را به دیتابیس ارسال کنند و داده‌ها را دستکاری یا سرقت کنند.

اوسپتزریقدیتابیسsql

تزریق SQL چیه؟

خلاصه در یه جمله: وقتی هکر بتونه کد SQL خودش رو به دیتابیس تو بفرسته و داده‌ها رو بخونه، تغییر بده، یا حذف کنه!

فرض کن یه فرم لاگین داری. کاربر یوزرنیم و پسورد رو می‌زنه، تو می‌فرستی به دیتابیس که چک کنه درسته یا نه. هکر به جای پسورد یه کد SQL می‌فرسته که می‌گه "همیشه درست در نظر بگیر!" و بدون پسورد وارد می‌شه!

مثال SQL Injection:

کوئری عادی:

sql
1SELECT * FROM users WHERE username = 'ali' AND password = '123456'

هکر به جای پسورد می‌زنه: ' OR '1'='1

کوئری می‌شه:

sql
1SELECT * FROM users WHERE username = 'ali' AND password = '' OR '1'='1'

چون '1'='1' همیشه درسته، شرط درست می‌شه و هکر وارد می‌شه!

انواع SQL Injection:

In-band: داده‌ها رو مستقیم می‌بینه (مثل Error-based، Union-based)

Blind: داده‌ها رو نمی‌بینه، ولی از روی رفتار سیستم حدس می‌زنه (True/False، Time-based)

Out-of-band: داده‌ها رو از طریق یه کانال دیگه می‌گیره (مثل DNS)

چرا برای امنیت مهمه؟

چون SQL Injection می‌تونه منجر به دزدی تمام داده‌های دیتابیس، تغییر داده‌ها، حذف داده‌ها، یا حتی دسترسی به سرور بشه (اگه تنظیمات اجازه بده).


منابع و مراجع

  • owasp.org/www-community/attacks/SQL_Injection
  • portswigger.net/web-security/sql-injection

مفاهیم مرتبط

تزریق(N/A)

آسیب‌پذیری که به مهاجمان اجازه می‌دهد داده‌های مخرب را به عنوان کد یا دستور به سیستم ارسال کنند.