Scripting یکی از روش های حمله هکرها به سایت ها است و یک نقص امنیتی محسوب می شود. البته در این حمله کدهای سمت کلاینت از قبیل جاوا اسکریپت به سایت تزریق می شوند و هدف اصلی هکرها کاربرانی هستند که به سایت مراجعه کرده اند. در حقیقت هکرها در این نوع از حمله اطلاعات کاربران یک سایت را بدون اینکه خودشان آگاهی داشته باشند، به سرقت می برند.
xss یا تزریق کد چیست؟
اگرچه مخفف Cross Site Scripting، CSS می باشد اما از آنجا که CSS به عنوان مخفف Cascading Style Sheets نیز می باشد، به منظور جلوگیری از بروز اشتباه، XSS را به Cross Site Scripting نسبت داده اند.
در XSS هکرها کدهای خود را جایگزین کدهای صفحات وب پویا می کنند. این حمله اغلب هنگامی صورت می گیرد که یک سایت جهت درخواست اطلاعات کاربر از Query string استفاده می نماید. کدهائی که جایگزین کدهای صفحات پویا می شوند، بر روی کامپیوتر کاربر اجرا می شوند. این کدها می توانند اطلاعات با اهمیت موجود در کامپیوتر او را سرقت ببرند و به صورت مخرب بکار گیرند.
به عنوان مثال: ممکن است پس از ورود اطلاعات یک کاربر مثل Username و Password در سایت یکی از بانکها که در برابر XSS محافظت نشده، این اطلاعات توسط هکر دزدیده شود ( البته بدون آگاهی کاربر ) و آنگاه حساب بانکی کاربر مورد دستبرد واقع شود.
با اینکه بسیاری از وب سایت ها، فیلترهایی برای شناسایی پست های حاوی XSS دارند اما نمی توان همه انواع مختلف XSS را فیلتر نمود. به این ترتیب می توان گفت سایت هایی که اقدام به دریافت اطلاعات از کاربران می کنند، مستعد حملات XSS هستند.
یکی از روش های دستیابی به اطلاعات کاربر بدست آوردن cookieای است که سایت ها پس از استفاده کاربر در سیستم او ایجاد و ذخیره می نمایند، تا در ورودهای بعدی از اطلاعات ذخیره شده در آن استفاده نموده و به کاربر اجازه ورود دهند. با دستیابی به این فایل در حقیقت هکر به اطلاعات کاربر دست پیدا نموده و می تواند از آنها استفاده های سوئی نماید.
انواع حملات XSS:
انعکاس :
در این نوع از حمله، هکر یک حفره امنیتی و راهی برای استفاده از آن پیدا می نماید تا کاربر ناشناس را به یک برنامه وب دارای آسیب پذیری XSS هدایت کند. در این هنگام حمله انجام شده است.
این حمله به وسیله یک سری از پارامترهای URL که با URL ارسال می شوند، انجام می شود. هکر URL مخرب را با پارامترهای موجود در URL برای کاربر ارسال می کند. این URL معمولا از طریق ایمیل، وبلاگ ها یا انجمن ها و یا هر روش ممکن دیگری برای کاربر فرستاده می شود. شاید تصور شود که کاربر بر روی لینک های ناشناس کلیک نمی کند، بنابراین مشکلی برای او پیش نمی آید. اما باید توجه نمود که با استفاده از JavaScript حتی با بازنمودن یک ایمیل و حتی مشاهده یک سایت، حمله XSS انجام می شود. به علاوه در این نوع حمله معمولا URL ها با متدهایی مثل Hex و یا هر متد کدگذاری دیگری که URL ها را بصورت معتبر نمایش می دهد، کدگذاری می شوند.
ذخیره :
در این نوع حمله، هکر کدهای مخربی را که یک کاربر در آینده آنها را فراخوانی می کند ذخیره می نماید.
در واقع یک کاربر ندانسته به کدهای مخرب برخورد می نماید و کدهای مخرب اجرا می شوند. مسئله اینجاست که هنگام ذخیره سازی کدها و همچنین هنگام واکشی آنها اعتبارسنجی ورودی ها و خروجی ها انجام نشده است. نکته حائز اهمیت این است که حتی درصورت اعتبارسنجی کدها در هنگام ذخیره نمودن آنها، چک نمودن خروجی ها و اعتبار سنجی آنها نیز لازم است. چراکه به این ترتیب کدهای مخرب ناشناخته در طی فرایند اعتبار سنجی ورودی، کشف خواهند شد.
یک هکر با بهره گیری از XSS می تواند به انجام اعمالی از قبیل موارد زیر اقدام نماید:
- تغییر تنظیمات کاربر
- ربودن حسابها
- ربودن کوکی ها
- اعمال کدهای تخریب کننده
- لینک به سایت های مخرب
- راه اندازی تبلیغات کاذب
راه های متداولی که کاربران از طریق آنها مورد حمله قرار می گیرند، عبارتند از:
- باز نمودن یک صفحه وب
- کلیک نمودن بر روی لینک
- باز نمودن ایمیل
جلوگیری از XSS :
ساده ترین راه جلوگیری از XSS، اضافه نمودن کدی به برنامه تحت وب است تا باعث شود از برخی تگ های فرمان در ورودی پویا چشم پوشی شود.
تگ های قابل استفاده در XSS عبارتند از:
- <script>
- <object>
- <applet>
- <embed>
- <form>
به طور کلی جهت جلوگیری از XSS باید استراتژی های مختلفی درنظر گرفته شود:
- استفاده از مرورگرهای وب امن:
مرورگرهایی مثل Firefox و Opera از امنیت بالاتری (نه ۱۰۰درصد) نسبت به IE برخوردار هستند. اینترنت اکسپلورر از جمله مرورگرهایی است که نقاط ضعف زیادی دارد و بسیار در معرض خطر است. - بکارگیری ابزارهائی که اجرای کدهای Script،Flash و هر کد مخرب دیگری را محدود می کنند. مثل NoScript
- عدم کلیک بر روی link ها و ایمیل های ناشناس :
سعی کنید آدرس وب سایت هایی که قصد مشاهده آنها را دارید، مستقیما در نوار آدرس مرورگر وارد نمایید. - استفاده از توابعی که عملیات پاکسازی کدها را انجام می دهند. مثل htmlentities در زبان PHP (فیلتر نمودن ورودی های کاربر و همچنین کدهای خروجی)
زبانهای متداول مورد استفاده در XSS عبارتند از:
- JavaScript
- VBScript
- HTML
- Perl
- C++
- ActiveX
- Flash
نوشته xss یا تزریق کد چیست؟ اولین بار در LeanFiles.Com Academy – Online Training Courses پدیدار شد.
مبنع این خبر (برای مشاهده متن کامل خبر لینک زیر را بزنید):
LeanFiles.Com Academy – Online Training Courses