تزریق SQL شکلی از حمله سایبری است که پایگاه داده (Database)-linked سایت اینترنتی (Website) و برنامه تحت وب (Web Application) را هدف قرار می دهد. این حملات از نرم افزار سرور (Server) وب سایت و پایگاه داده با پیکربندی ضعیف سوء استفاده می کنند تا سرور را فریب دهند تا عبارات زبان پرس و جو ساختاریافته (SQL) را تجزیه کند که در غیر این صورت انجام نمی شد. این حملات ممکن است اطلاعات شخصی و مالی حساس را فاش کند، به مهاجم اجازه دهد اطلاعات ذخیره شده در پایگاه داده را تغییر یا حذف کند، یا دسترسی غیرمجاز دیگری را فراهم کند.
یک وب سایت زمانی که ورودی کاربر را از طرف می پذیرد، در برابر تزریق SQL آسیب پذیر است. یک متن فرم (Form) و شامل آن به عنوان بخشی از یک SQL پرس و جو (Query) است. مهاجم به جای پر کردن فیلد فرم با اطلاعات مورد انتظار (مانند نام کاربری (Username))، متنی رشته (String) را وارد می کند که پرس و جوی SQL را تغییر می دهد. به عنوان مثال، یک پرس و جو فرضی ممکن است با انتخاب شناسه کاربری، نام، رمز عبور FROM Users WHERE UserID = شروع شود و به دنبال آن ورودی از فیلد فرم شناسه کاربر وارد شود. اگر کاربر شناسه کاربری خود را وارد کند، پرس و جو همانطور که انتظار می رود کار می کند و اطلاعات او را جمع آوری می کند.
با این حال، اگر سرور متن ورودی را بدون محدودیت در پرس و جو وارد کند، مهاجم می تواند از آن برای اصلاح خود عبارت پرس و جو SQL استفاده کند. اگر شخصی به جای شناسه کاربری، متن 317 OR 1=1 را وارد کند، درخواست به SELECT UserID, Name, Password FROM Users WHERE UserID تبدیل می شود. = 317 یا 1=1;. از آنجایی که OR 1=1 همیشه درست است، شناسه کاربر را لغو می کند. پرس و جو در عوض شناسه های کاربر، نام ها و رمز عبور همه ورودی های جدول کاربران را برمی گرداند. سایر انواع تزریق کد ممکن است به مهاجم اجازه دهد تا به عنوان مدیر سایت وارد شود، رکورد (Record) یا جدول (Table) را از پایگاه داده حذف کند، یا (در برخی موارد شدید) پوسته و کدهای دیگر.
یک مدیر وب سایت می تواند با به روز نگه داشتن نرم افزار سرور از حملات تزریق SQL جلوگیری کند. همچنین مهم است که ورودی های پایگاه داده را با محدود کردن متن ورودی یا با فیلتر کردن اسکریپت (Script) معینی، "ضدعفونی" کنید. مدیران وبسایت همچنین میتوانند پرسوجوهای SQL خود را شخصیت (Character) - با استفاده از متغیرهایی در عبارت جستجو که به ورودی کاربر اشاره میکنند، به جای درج مستقیم آن در جستار.
تعریف تزریق اس کیو ال (SQL Injection) در این صفحه یک تعریف پایه نگاشته شده توسط تک بورد است. اگر مایل به ارجاع به این صفحه یا استناد به این تعریف هستید، با شرط درج لینک به این صفحه می توانید از این محتوا استفاده کنید.
هدف تک بورد توضیح اصطلاحات کامپیوتری به روشی است که به راحتی قابل درک باشد. ما برای سادگی و دقت با هر تعریفی که منتشر می کنیم تلاش می کنیم. اگر بازخوردی درباره تعریف تزریق اس کیو ال (SQL Injection) دارید یا میخواهید یک اصطلاح فنی جدید پیشنهاد کنید، لطفاً با ما تماس بگیرید.
آیا می خواهید اصطلاحات فنی بیشتری یاد بگیرید؟ در خبرنامه روزانه یا هفتگی مشترک شوید و شرایط و آزمون های ویژه را در ایمیل خود تحویل بگیرید.