آسیب پذیری SQL Injection

آسیب پذیری SQL Injection


آسیب پذیری SQL Injection به این صورت رخ می دهد که بخشی از Query های SQL به جای Input کاربر یا همراه با آن به سمت سرور ارسال می گردد. در صورت Exploit موفقیت آمیز این آسیب پذیری، علاوه به فراهم شدن خواندن تمامی دیتاهای بانک اطلاعاتی برای مهاجم، امکاناتی از قبیل ارسال Query های Insert/Update/Delete و همچنین Write بر روی File System نیز برای مهاجم فراهم خواهد شد. لازم به ذکر است این آسیب پذیری به دلیل ضعف در پیاده سازی کدها در سیستم ایجاد می گردد و ارتباطی با امنیت بانک اطلاعاتی ندارد.

متد هایی که حمله SQL Injection با استفاده از آنها صورت می پذیرد به شرح زیر می باشد:

  • Union
  • Error Based
  • Blind SQL Injection

متد Blind شامل دو مورد زیر می باشد:

  • Boolean Based
  • Time Based

چگونه این آسیب پذیری را رفع کنیم ؟


  • استفاده از Prepared Statements با استفاده از استفاده از Parameterized Queries
  • استفاده از Stored Procedures ها
  • استفاده از روش Whitelist Input Validation و مسدود سازی کاراکتر های غیر مجاز
  • استفاده از روش Escaping برای تمامی Input های دریافتی از کاربر
  • استفاده از مکانیزم های بازدارنده در WAF

برای مشاهده ی سایر آسیب پذیری ها، روی این لینک کلیک نمائید.