هر آنچه باید در خصوص حملات "تزریق کد" بدانید

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

حملات تزریق اسکریپت (Cross Site Scripting) که به صورت مخفف "XSS" نام‌گذاری شده است، از حملات سایبری رایج به وب‌سایت‌ها محسوب می‌شود. در این نوع حملات هکرها کدهای جاوا اسکریپت را به وب‌سایت مورد حمله تزریق می‌کنند و وقتی کد‌های جاوا اسکریپت در مرورگر آن‌ها اجرا شد، هکرها می‌توانند به اطلاعات‌های زیادی دسترسی پیدا کنند.

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

حملات تزریق کد به این صورت انجام می‌شود که در گام نخست هکر به دنبال یک باگ در وب‌سایت مورد نظر می‌گردد، پس از آن هکر کد‌های مخرب خود را به کد وب‌سایت مورد حمله تزریق می‌کند. برای مثال تزریق کد از طریق قسمت نظرات یا کامنت‌های مطالب، و یا فیلد جستجو صورت می‌گیرد. پس از اجرای این کد‌ها، هکرها می‌توانند به اهداف مورد نظر خود برسند. ظاهر کد‌های جاوا اسکریپت تزریق شده مانند کد‌های معمولی سایت است، به همین دلیل موضوع غیرطبیعی دیده نمی‌شود.

در حقیقت در این نوع حملات، هکرها به دنبال باگی در سایت مورد حمله هستند. پس از تزریق کد جاوا اسکریپت، به دیتابیس جایی که کلیه اطلاعات کاربران در آن ذخیره شده است، دسترسی پیدا می‌کنند. در آخر، هکرها اطلاعات مهم کاربران را دزدیده و در سرور‌های خود ذخیره می‌کنند. تمام این حملات از طریق یک صفحه درون یک سایت صورت می‌گیرد.

حملات تزریق کد عواقب خطرناکی را به‌ همراه دارند. یکی از عواقب این حملات، دزدیدن کوکی‌ها است. هکرها از طریق این حملات می‌توانند کوکی‌های مرورگری را که مورد حمله قرار دادند بدزدند. کوکی‌ها حاوی اطلاعات حساسی نظیر "session ID"  هستند، و هکر‌ها با این اطلاعات بدون وارد کردن رمز‌های عبور کاربر می‌توانند به حساب‌های کاربری‌اش دسترسی پیدا کنند.

اگر باگ سایت در قسمت لاگ‌این سایت باشد، و هکرها به این قسمت کد‌های جاوا اسکریپت تزریق کنند، و به‌راحتی می‌توانند فیلد رمز عبور را مانیتور کنند و به اطلاعات حساس کاربران از جمله نام‌ کاربری و رمز‌عبور آن‌ها دسترسی پیدا کنند.

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

اگر هکرها از روش‌های بالا بتوانند در سایت شما نفوذ کنند، این نشان‌دهنده‌ این است که سایت شما دچار ضعف امنیتی است و هکرها به روش‌های مختلفی که در بالا اشاره کردیم، می‌توانند کد جاوا اسکریپت به آن تزریق کنند و به سایت شما نفوذ کنند.

نحوه مقابله با حملات "XSS" نیاز به آگاهی برنامه‌نویس تحت وب دارد. در حقیقت متخصص باید کد‌های اجرایی را مدام کنترل کند و کد‌های مشکوک را خنثی کند و حملات "XSS" را متوقف سازد. در حقیقت وظیقه متخصص کنترل کد‌های اجرایی و پاکسازی کد‌های مشکوک و غیرقابل قبول است. البته با استفاده از سیاست امنیت محتوا یا "Content Security Policy" هم می‌توان از این نوع حملات جلوگیری کرد چرا که این سیاست‌ها مرورگر را محدود به اجرای کد‌ها و دستورات از منابع معتبر می‌کنند.