كارت dvb , كارت دي وي بي , دی وی بی , رسيور , رسیور
| |
اين يك بخش از موضوع معرفی SQL Injection Attacks و نحوه پیشگیری از آن است كه در انجمن آموزش ها و مفاهیم پایه مطرح گرديده و اين انجمن نيز زير مجموعهي تالار هاي امنيتي است: بانکهای اطلاعاتی معمولا قلب یک وب سایت یا یک برنامه Web based و یا Web Enabled را تشکیل میدهند. زیرا اطلاعاتی که باید در سایت نمایش داده شوند در آنها ذخیره میگردد. بر اساس مدلهای مختلف برنامه سازی، ترکیبی از یک بانک اطلاعاتی و یک زبان اسکریپت یا کد نویسی ...
| ثبت نام | پست جدید | All Albums | Blogs | راهنما | فهرست کاربران | تقویم | جستجو | ارسالهاي امروز | نشانه گذاري انجمن ها به عنوان خوانده شده |
| | ||||||||
| آموزش ها و مفاهیم پایه اینجا در مورد مفاهیم پایه ای صحبت میشه و سوالات در مورد اصطلاحات و پیش زمینه ها و اموزش ان ها اینجا مطرح می شه |
| اطلاعيههاي سايت |
|
| LinkBack | ابزارهای موضوع |
| | #1 | |||||||||||
| عضو نیمه فعال ![]() ![]() تاریخ عضویت: March 13th, 2007
نوشته ها: 111
سطح دانش: 9 [ ]سابقه در سایت: 0 / 213 Thanks: 7
Thanked 48 Times in 31 Posts
قدرت اعتبار: 3 | بانکهای اطلاعاتی معمولا قلب یک وب سایت یا یک برنامه Web based و یا Web Enabled را تشکیل میدهند. زیرا اطلاعاتی که باید در سایت نمایش داده شوند در آنها ذخیره میگردد. بر اساس مدلهای مختلف برنامه سازی، ترکیبی از یک بانک اطلاعاتی و یک زبان اسکریپت یا کد نویسی و احتمالا چند لایه دیگر میتوان برنامه ای نوشت که مورد رضایت مشتری قرارگیرد و اورا قانع به پرداخت هزینه های برنامه نویسی نموده و از همه مهم تر کسب و کار ما را رونق دهد!.گاه با اینکه تمام جوانب برنامه نویسی را رعایت کرده ایم ممکن است متوجه وجود برخی حفره ها و یا خطاها در برنامه های خود شویم. در صورتی که این حفره ها به دلیل اشکالات موجود در ابزارهای استفاده شده در برنامه ما، مانند بانکهای اطلاعاتی باشند، میتوان به نصب SERVICE PACK ها و یا ارتقاء به نگارش جدید این برنامه ها مشکل را حل نمود، اما در اکثر موارد اشکال و حفره های موجود در یک برنامه وبی به اشکالات مربوط به "تزریق کدهای SQL" یا همان SQL Injection مربوط میشود....SQL Injection به چه کاری میگویند؟!همان طور که میدانید زبان SQL شامل دستوراتی است که انجام عملیات بر روی داده های یک بانک اطلاعاتی را فراهم مینماید. هر عملیات (Query) بر روی بانک اطلاعاتی میتواند شامل چندین دستور (Command) باشد. معمول ترین این دستورات عبارتند از: Select, Insert, Update و Delete.در صورتی که فردی بتواند بصورت غیر مجاز بر روی بانک اطلاعاتی ما با استفاده از این دستورات به اطلاعاتی دست پیدا کند یا اطلاعاتی وارد سایت نماید یا آنها را تغییر داده و یا احتمالا حذف نماید و این عمل را با استفاده از ضعف ما در تفکیک مقادیر ورودی های کاربر و دستورات SQL انجام دهد، اصطلاحا به این روش غیر مجاز اجرای دستورات SQL Injection Attack میگویند.مثالی از SQL Injection Attacksمثالها و ضعف های مختلفی را میتوان برای یک SQL Injection Attack بیان نمود، اما در ابنجا به یک نمونه ساده از نحوه عبور از یک فرم مخصوص اعتبار سنجی کاربران که به خوبی طراحی نشده آورده میشود.معمولا برای ورود به یک سایت از طریق یک فرم کلمه عبور و نام کاربری خواسته شده و مقادیر وارد شده در صفحه دیگری ارزیابی شده و در صورت صحت اعتبار، کاربر به صفحه اصلی انتقال داده میشود. صفحه ورود اعتبار کدی مانند مثال زیر دارد: Username: Password: اطلاعات فرم بالا پس از Submit به صفحه Login.asp ارسال شده و با کدی مانند آنچه در زیر آمده است مورد ارزیابی قرار میگیرد:در مثال بالا در صورتی که Username و Password وارد شده حداقل یک بار در بانک اطلاعاتی وجود داشته باشند، کاربر جمله "Logged In" و در غیر این صورت عبارت "Bad Credentials" را مشاهده خواهد نمود.حال فرض کنید کاربر بجای وارد نمودن Username و Password خود عبارتهای زیر را تايپ نماید:Username: ‘ or True –Password: [Null]در اینصورت دستور اجرا شده SQL ما بر روی بانک اطلاعاتي بصورت زیر خواهد بود: select * from users where userName='' or True -– ' and userPass=''همان طور که ملاحظه ميشود در صورت اجرای این کد بر روی بانک اطلاعاتی، همیشه کاربر قادر به ورود به سایت بوده و جمله "Logged In" را مشاهده مینماید! ماجرا همیشه به این سادگی نیست، کاربران غیر مجاز نه تنها از طریق فرمها، بلکه از طریق تغییر Query String های صفحات وبی و یا مقداردهی بهCookie ها نیز قادر به ارسال دستورات مخرب SQL به بانکهای اطلاعاتی میباشند! و گاه میتوانند اطلاعات ما را کاملا حذف نمایند، تغییر دهند، دیتای جدید وارد کنند و یا اطلاعات ما را مشاهده و دریافت نمایند. بنابر این: همواره مراقب اجرای کدهای مخرب که از طریق کاربر به عنوان اطلاعات معمولي به سیستم تزریق میگردند باشید!برخی پیشنهادات برای جلوگیری و مقابله با SQL Injection Attacks:اگر ما به عنوان برنامه نویس وب، برنامه های خود را با دقت بیشتری بنویسیم، در اکثر مواقع میتوانیم جلوی حملات SQL Injection را بگیریم، معمولي ترین راه های مقابله با این نوع حملات میتواند شامل موارد زیر باشد:1- محدود کردن سطح دسترسی کاربری که با آن اطلاعات وب را برای کاربر از بانک اطلاعاتی استخراج مینماید، بدین منظور بهتر است به چنین نام کاربری، تنها سطح دسترسی SELECT و INSERT برای جداولی که به چنین سطح اجرای دستوراتی نیاز دارند داده شود.2- با استفاده از دستور Replace مقادیر مربوط به کوتیشن ‘ را پیش از ارسال مقادیر دریافت شده از طرف کاربر بر روی سرور، از جملات مربوطه حذف نماییم.3- کلمات کلیدی و معنادار برای SQL مانند: Drop, Delete, Update و – را از ورودی های دریافت شده از کاربر حذف نماییم.4- طول پارامتر ورودی توسط کاربر را محدود نماییم | |||||||||||
| |
| برچسب ها |
| attacks , injection , sql |
| ابزارهای موضوع | |
| |
| ||||
| موضوع | نویسنده موضوع | انجمن | پاسخ ها | آخرين نوشته |
| جوک و پیامک های باحال | nima_g | Nokia | 1206 | Friday 22 August 2008 11:01 PM |
| رفع کاهش سرعت کامپیوتر | arash_80099 | ترفند های امنیتی | 3 | Thursday 31 May 2007 10:10 AM |
| (هكر ها حتماً اين طومار را بخوانند ) | ناظم ارشد | فناوری اطلاعات (IT) | 0 | Thursday 22 February 2007 02:55 AM |
| آموزش تنظيمات Tcp\ip در لينوكس | atn_1366 | ساخت شبکه NetWork | 0 | Wednesday 23 August 2006 02:13 AM |
| اموزش شبکه | AKBAR H.Y | ساخت شبکه NetWork | 4 | Monday 26 June 2006 12:54 AM |
تمامي قوانين اين سايت از جمهوري اسلامي ايران پيروي مي کند و هرگونه مطالب مخالف قوانين ايران و بنر يا لينک مستهجن در اين سايت جايي ندارد