جلوگیری از حملات sqlinjection
در این مقاله در ضمینه جلوگیری از حملات sqlinjection که مهمترین اصل از جلوگیری حملات sqlinjection هست را مرور میکنیم.
حملات SQL INJECTION
sql injection به معنای تزریق اطلاعات یا تزریق کدهای دستوری sql میباشد که با دستکاری اطلاعات این امر میسر میشود تا اطلاعات مهمی مانند ایمیل ها و نام کاربری و کلمات عبور رویت شود یا آپدیت شده و به کلمه عبور یا مقدارهای جدیدی جایگزین میشود.
اکثر سایتهایی که قابل مشاهده هستند از متد POST برای ارسال اطلاعات به دیتابیس استفاده میکنند که تا حد خیلی زیادی جلوگیری میکند از حمله هکر ها ولی به تنهایی این گزینه فقط از تزریق اطلاعات برای هکرهای ناشی جلوگیری میکند و روال کار برای کسانی که علم بالاتری دارند همچنان آسیب پذیر است.
نقاط آسیبپذیر sql
جایگاه هایی مثل صفحات ورود , بخش جستجو , در استرینگهای url,و هر مکانی که اطلاعاتی قابل ارسال باشد کاربرد دارد مثلا زمانی که آدرس های news.php?id= را مشاهده شود با درج یه ‘ و دریافت ارور متوجه آسیبپذیری میشویم.
سایتهای آسیب پذیر
تمام مواردی که برای شما شرح داده شد قابل تست هستند مثلا اگر در آدرس یک url که با =۳ به اتمام رسیده و بعد از مساوی یک کاراکتر قرار دهیم .
درصورتی که سایت بدون ارور و مشکل لود شد به این معنا هست که جلوگیری تزریق کد درquery اعمال شده ولی زمانی که سایت ناقص لود شود و یا با ارور مواجه شود و یا جایگاه های مطالب و نشوته ها ناقض شوند یعنی آسیب پذیر است.
در عکس پایین من در یک سایت ‘ را درج میکنم و ارور sql را مشاهده میکنیم .
نمونه آسیبپذیری sql injection
تصویر سایت در حالت عادی:
و تصویر حالت آسیب پذیر:
جلوگیری از حملات sqlinjection
برای اینکه کاملتر این موضوع را شرح دهیم در ویدیو زیر از طریق کدهای php به یک دیتابیس محلی متصل میشویم. و یک جدول ایجاد میکنیم با محتویات آن.در سینتکس کلی mysql مقدارها را به سمت دیتابیس ارسال میکنم .
داخل آن مقدار ها کدهایی تزریق میکنیم و عملیات را با خطا مواجه میکنیم.
در مرحله بعدی توسل تابع stegment در mysqli داده ها را بصورت آبجکت به دیتابیس ارسال میکنیم و تعریف میکنیم که ورودی داده ها حتما باید از نوع string یا bool یا int باشد .
هر اطلاعات اضافه دیگری که وارد داده ها شود بصورت داده ای که تعریف کردیم در دیتابیس ذخیره میشوند و خروجی یا اروری را دریافت نمیکنیم.
نکته امنیتی:
در صورتی که از cms های آماده استفاده میکنید حتما به یاد داشته باشید که هر افزونه ای که نصب میکنید ممکن است باگ آسیبپذیری برای شما ایجاد کند .
به سهو یا به عمد دقت داشته باشید که با اسکنرهای امنیتی حتما هر ماه سایت و صفحاتتان را اسکن کنید و در سرور مجازی خود حتما شل اسکنر داشته باشید تا درصورت هک شدن از سو استفاده های هکرها جلوگیری کنید.
ویدیو آموزشی جلوگیری از حملات sqlinjection
حجم فایل ویدیویی آموزشی کاهش پیدا کرد و بصورت کلی این مورد را خیلی ساده برای شما عزیزان مخصوصا برنامه نویسان عزیز شرح دادیم تا جلوگیری شود از آسیبهای احتمالی و اینکه سایت شما سیبر متحرک برای هکرها نباشد.
نکته: استفاده از دانلود باکس فاماسرو و ویدیوهای آموزشی بصورت نیم بها میباشد .