PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله آشنایی با حملات‌ تزریق ‌‌به ‌‌پایگاه ‌‌داده‌ها (sql injection)



آبجی
2nd March 2010, 01:09 PM
هدف این مقاله آشنایی مختصر با حملات ترزیق كد به بانك‌های اطلاعاتی (Sql Injection) و روش‌های مقابله با این دسته از حملات در دنیای وب است. امروزه یكی از متداول ترین روش‌های نفوذ به وب سایت‌ها و بانك‌های اطلاعاتی حملات تزریق كد است در این گونه حملات شخص نفوذگر یا برنامه‌های نفوذگر كدهای مخرب را از طریق ورودی‌هایی كه برنامه‌های تحت وب می‌گیرند، اجرا می‌كند كه باعث اختلال در سیستم وب سایت‌ها می‌شوند اهداف نفوذگران در این گونه حملات سرقت اطلاعات یا تغییر اطلاعات بانك اطلاعاتی(database) است كه گاهی اوقات این دسترسی تا نفوذ به سرور و دسترسی به كل فایل‌ها و اطلاعات سرور ختم می‌شود كه از این جنبه بسیار خطرناك است. این روش هك شایع ترین روش در هك كردن كارت‌های اعتباری و اطلاعات سایت‌ها و بانك‌های اطلاعاتی به شمار می آید. شایع ترین پایگاه‌های اطلاعات كه با این مساله مواجه می‌شوند شامل Access, Microsoft Sql , MySql , Oracel می‌باشد. حال در ادامه به توضیح مختصری در مورد چگونگی وقوع این نوع حملات و راه‌های مقابله با آن می‌پردازیم. نفوذگر در این حملات با سوء استفاده از فرم‌هایی كه از طریق كاربر ورودی می‌گیرد، كدهای مخرب خود را به ورودی برنامه تزریق می‌كند و بعد از پردازش بین پایگاه اطلاعات و برنامه تحت وب عملیاتی به عنوان خروجی انجام می‌شود یا اطلاعاتی روی صفحه نمایش داده می‌شود كه نفوذگر بر اساس خروجی، كار خود را پیش می‌برد. فرم‌های ورود به قسمت مدیریت وب سایت، نمایش اخبار, نمایش مقالات و امثال این گونه فرم‌ها قربانیان این حملات می‌باشند در ادامه یك مورد از این حملات را شرح می دهیم و در نهایت به روش‌های مقابله با این نوع حملات می‌پردازیم.
برای مثال فرم ورود به قسمت مدیریت یك سایت در نظر بگیرید كه شامل دو ورودی نام كاربری و كلمه عبور است و دكمه ارسال كه اطلاعات را به سمت برنامه می‌فرستد، حال نام كاربری مهم نیست و هر چیزی می‌تواند باشد اگر در قسمت كلمه عبور عبارت a" or "t"="t وارد شود باعث می‌شود كه دستوری كه برنامه به پایگاه اطلاعات می‌فرستد دچار انحراف بشود و نتیجه اجرای عملیات درست نباشد و باعث ورود به قسمت مدیریت سایت بشود و شخص نفوذگر به كلیه اطلاعات به راحتی دسترسی داشته باشد البته این یكی از ساده ترین روش‌های تزریق كد به بانك اطلاعاتی است كه البته هنوز هم در بسیاری از فرم‌ها این مشكل وجود دارد و می‌تواند ناشی از كنترل نشدن مقادیر ورودی توسط برنامه‌نویس و وجود مشكل در دستوراتی كه به پایگاه داده ارسال می‌گردد باشد.
حال نوبت روش‌های مقابله با حملات تزریق كد به پایگاه داده (Sql Injection) است قبل از شروع باید اهمیت این موضوع را درك كنیم كه سایت‌های بسیار معروف و مهمی توسط این روش مورد حمله قرار گرفتند و این امر برنامه‌نویس را بر آن می‌دارد كه مقابله با حملات تزریق كد را یكی از قسمت‌های مهم كار خود در نظر بگیرد و در تمام فرم‌هایی كه ورودی از كاربر می‌گیرد این مساله را كنترل نماید.
روش‌های مقابله با حملات تزریق به پایگاه اطلاعات‌
یكی از مهم‌ترین روش‌ها جلوگیری از نمایش خطاهای برنامه است كه در صورت به وجود آمدن هرگونه مشكل برای برنامه یا تزریق ورودی‌های مخرب به برنامه سورس برنامه یا اطلاعات پایگاه داده نمایش داده نشود چون بیشتر نفوذگران بر اساس خطاهایی كه برنامه می دهد كار خود را مرحله به مرحله پیش می‌برند و به اطلاعات بیشتری دستیابی پیدا می‌كنند. این مساله خیلی مهم است كه امیدواریم تمام برنامه‌نویسان رعایت كنند كه در آینده برایشان مشكلی پیش نیاد.
مساله بعدی كنترل ورودی‌های برنامه است این مهم‌ترین قسمت مقابله با حملات تزریق كد است. ورودی‌های برنامه بطور كل اطلاعاتی است كه به فرم‌های برنامه پست می‌شود كه ما توسط روش‌های مختلفی می توانیم اطلاعات ورودی را كنترل كنیم. بهترین لایه, لایه امنیتی سرور است كه كلیه مقادیر پست شده را كنترل كند و مقادیر مخرب را فیلتر كند و قبل از این كه اطلاعات به برنامه پست شود جلوی حملات را بگیرد. البته این روش مقابله به مسائل امنیتی سرور بر می‌گردد كه ممكن است در یك سرور رعایت شود و در یك سرور رعایت نشود كه این امر برنامه‌نویس را مجبور می‌كند كه این لایه امنیتی را در داخل برنامه پیاده سازی كند و كلیه اطلاعات ورودی و پست شده را چك كند و ورودی‌های مخرب را فیلتر نماید.
بیشترین مشكلی كه موجب تزریق كد‌های مخرب به پایگاه اطلاعات می‌شود ورودی‌های متنی هستند كه از طریق url به برنامه ارسال می‌شود تا جای ممكن باید سعی شود برای نمایش اطلاعاتی مثل اخبار, مقالات و مطالبی كه در پایگاه داده ذخیره شده از ورودی‌های عددی استفاده شود تا جلوی تزریق كد گرفته شود و اگر ورودی عددی باشد در برنامه باید كنترل شود كه ورودی مشكلی نداشته باشد و آلوده به كدهای مخرب نباشد این مهم‌ترین مساله است كه تمام مشكلات تزریق كدهای مخرب به پایگاه اطلاعات ناشی از چك نكردن ورودی‌های آلوده است كه خیلی راحت می‌توان جلوی این نوع حملات را گرفت.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد