حملات تزریق کد

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

تزریق کد (انگلیسی:XSS: Cross site scripting) از روش‌های نفوذ و گرفتن دسترسی غیر مجاز از یک وب‌گاه است که توسط یک هکر به کار می‌رود.

محتویات

[ویرایش] تاریخچه

تاریخچه حفره‌های امنیتی در معرض حملات XSS به سال ۱۹۹۶ و سالهای اولیه صفحات وب باز می‌گردد. نفوذگران در آن زمان که پروتکل HTTP جا افتاده بود و طراحان وب‌گاه‌ها از زبانهای پردازه‌نویسی مانند جاوا اسکریپت سود می‌بردند، دریافتند وقتی کاربران معمولی وارد سایتی می‌شود می‌توان به کمک کدنویسی در حفره‌های امنیتی وب‌گاه، صفحه دیگری را در همان صفحه بارگذاری کرد سپس با سود بردن از جاوا اسکریپت داده‌های کاربر مانند نام کاربری، گذرواژه و یا کوکی(Cookie)ها را دزدید.

در این هنگام رسانه‌ها این مشکلات را به ضعف امنیتی مرورگرها نسبت داده بودند. شرکت ارتباطی Netscape که جزو اولین تولیدکنندگان مرورگرهای وب و همچنین سازنده زبان جاوا اسکریپت بود سیاست دامنه شخصی را به این زبان افزود که جلوی دسترسی به آدرس‌های خارج از دامنه وب‌گاه را می‌گرفت و تا حدودی این حملات را محدود می‌کرد.[نیازمند منبع]

[ویرایش] انواع حملات

سناریوهای مختلفی برای قرار دادن کد مخرب در سایتها به عنوان حمله وجود دارد:

  • طراح سایت، خود کد مخرب را در صفحه قرار داده باشد.
  • حفره سایت ممکن است در سطح سیستم‌عامل یا شبکه ایجاد شده باشد.
  • یک حفره دائمی در یکی از مکان‌های عمومی وب‌گاه قرار گرفته باشد.
  • قربانی بر روی یک لینک حاوی XSS مدل non-persistent یا DOM-based کلیک کند.

[ویرایش] فیلتر کردن

فیلتر کردن را از دو منظر باید بررسی کرد. فیلتر کردن ورودی‌های کاربر و فیلتر کردن خروجی‌ها برای کاربر است.

  • فیلتر ورودی:
    • در این قسمت، برنامه نویس وظیفه دارد با فیلتر کردن ورودی‌های کاربر، شکل و چینش کدهای مخرب را شناسایی کرده و آنها را فیلتر کند.
  • فیلتر خروجی:
    • در این قسمت، برنامه نویس وظیفه دارد با فیلتر کردن کدهای خروجی اجازه ایجاد حفره‌های امنیتی و به طبع آن شکل گیری حملات XSS را متوقف کند.

[ویرایش] روش‌های خنثی کردن

  • سود بردن از مرورگر مناسب.
  • سود بردن از ابزارهای محدودکننده اجرای کد مانند NoScript
  • کلیک نکردن بر روی لینک و آدرسهای ناشناس.

[ویرایش] جستارهای وابسته

[ویرایش] منابع