TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #87 126
#security #bug
دسته بندی Injection Attacks

باگ SQL Injection یکی از معروف ترین باگ ها هست که احتمالا اسمش به گوشتون خورده.
این باگ یک نوع باگ امنیتی است که در وب‌سایت‌ها و برنامه‌هایی که با دیتابیس ها ارتباط برقرار می‌کنند، رخ می‌دهد. در این حمله، حمله‌کننده با وارد کردن کدهای مخرب به فیلدهای ورودی یا پارامترهای URL وب‌سایت، توانایی اجرای دستورات SQL مخرب را به دیتابیس می‌یابد. این کار می‌تواند منجر به دسترسی غیرمجاز به اطلاعات حساس، حذف داده‌ها یا انجام عملیات‌های خرابکارانه شود.

مثال:

فرض کنید یک وب‌سایت دارای صفحه‌ای است که کاربران می‌توانند با وارد کردن نام کاربری خود، اطلاعات حساب کاربری خود را مشاهده کنند. وب‌سایت ممکن است از دیتابیسی استفاده کند که دارای جدولی با نام "users" است. حالا فرض کنید کد PHP این صفحه به صورت زیر باشد:
$username = $_POST['username'];
$query = "SELECT * FROM users WHERE username='$username'";

حمله‌کننده می‌تواند در فیلد ورودی نام کاربری خود را وارد کند و در عین حال یک دستور SQL مخرب به طور همزمان وارد کند. به عنوان مثال:
' OR '1'='1' --

پس از اجرای کوئری، دستور SQL به شکل زیر تبدیل می‌شود:
SELECT * FROM users WHERE username='' OR '1'='1' --'

این دستور SQL به معنی "انتخاب همه ردیف‌ها از جدول کاربران (users) در صورتی که '1' برابر با '1' باشد" است. همچنین، بخش -- کامنت کننده باقی‌مانده‌ی دستور SQL است و هر چیزی پس از آن نادیده گرفته می‌شود.

روش های جلوگیری:

1- استفاده از Prepared Statements می‌تواند از تزریق‌های SQL جلوگیری کند. در Prepared Statements، جدا از دستور SQL اصلی، پارامتر‌ها به صورت جداگانه ارسال می‌شوند و در زمان اجرای کوئری جایگزین مقادیر ورودی می‌شوند.

2- برنامه‌نویسان باید ورودی‌ها را با دقت فیلتر سازی و تقویت کنند. این کار شامل حذف و یا اسکیپ کردن کاراکترهای غیرمجاز است.

3- اطمینان حاصل کنید که کاربران و برنامه‌ها فقط به سطح دسترسی لازم برای انجام کارهای خود دسترسی دارند.

4- اطلاعات خطا در وب‌سایت‌ها نباید جزئیاتی از دیتابیس یا سیستم را فاش کند.

5- مطمئن شوید که نسخه‌های مورد استفاده از دیتابیس و کتاب‌خانه‌های آن به‌روز هستند.

.
  • 👍 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →