Cross-site Scripting (XSS): چیست و چگونه آن را برطرف کنیم؟

برنامه نویسی متقابل سایت (XSS) به عنوان یکی از رایج ترین تهدیدات امنیت سایبری به حساب می آید ، در سال 2019 تقریباً 75٪ از شرکت های بزرگ به این روش مورد حمله قرار گرفته اند. علاوه بر این ، تقریبا 40٪ از کل حملات سایبری برای هدف قرار دادن آسیب پذیری های XSS انجام شده است.
تزریق کد از طریق سایت بر وب سایت هایی که توسط غول های وب مانند eBay ، Google ، Facebook و Twitter اداره می شوند تأثیر گذاشته است. اما تزریق کد از طریق سایت یک تهدید سایبری جدید نیست. در واقع ، حملات XSS تقریباً از همان طلوع وب تاکنون وجود داشته است.

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


Cross-site Scripting (XSS) چیست؟

Cross-site Scripting (XSS) چیست؟

برنامه نویسی متقابل سایت (XSS) به نوعی از حملات سایبری گفته می شود که در آن اسکریپت های مخرب به وب سایت های معتبر و قابل اطمینان تزریق می شوند.

حملات اسکریپت متقابل سایت در HTML ، Flash ، ActiveX و CSS امکان پذیر است. با این حال ، جاوا اسکریپت متداول ترین هدف مجرمان اینترنتی است زیر اپایه  برنامه نویسی بیشتر مروگر ها است.

JavaScript یک زبان برنامه نویسی است که به شما امکان می دهد ویژگی های پیچیده ای را در وب سایت خود پیاده سازی کنید. بیشتر وب سایت های موجود در وب که بزرگ و تعاملی هستند ، با JavaScript ساخته شده اند. "به قول Domantas Gudeliauskas ، مدیر بازاریابی برای پروژه Zyro ،" شما می توانید ویژگی های تعاملی ، بازی ها یا قابلیت های اضافی را برای بازاریابی بهتر محصولات خود ایجاد کنید. "

جاوا اسکریپت در بین جامعه وب بسیار محبوب است زیرا به شما امکان می دهد تقریباً هر کاری را در یک صفحه وب انجام دهید و این زمانی است که مشکل ساز می شود. مجرمان اینترنتی می توانند از JavaScript برای ورود به پشت صفحات وب شما و درج اسکریپت های مخرب استفاده کنند.


اسکریپت نویسی بین سایت چگونه کار می کند؟

دو روش وجود دارد که مجرمان اینترنتی حملات XSS را به وب سایت های وردپرس انجام می دهند. آنها می توانند از ورودی کاربر سو استفاده کنند و یا سیاست های منشا origin مشابه را دور بزنند. بیایید نگاهی به هر دو روش بیندازیم تا برنامه نویسی بین سایت را بیشتر درک کنیم.


دستکاری ورودی کاربر

متداول ترین روش انجام حملات XSS توسط مجرمان اینترنتی استفاده از ورودی های کاربر است. اکثر وب سایت های وردپرس دارای زمینه های ورود کاربر مانند نوارهای جستجو ، فرم های نظر ، صفحات ورود به سیستم و فرم های تماس هستند. قسمت ورودی معمولاً توسط افزونه WordPress یا تم فعال در وب سایت شما با استفاده از JavaScript فعال می شود.

مشکل این است که همه افزونه ها و تم های وردپرس 100٪ ایمن نیستند و در واقع بسیاری از آنها دارای آسیب پذیری XSS هستند. معنی این برای شما این است که مجرمان اینترنتی می توانند از آسیب پذیری های وردپرس در زمینه های ورودی برای اجرای فعالیت های مخرب استفاده کنند.

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

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

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

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

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

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

چرا XSS خطرناک است؟

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

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

  1. حساب های کاربری هواپیماربایی
  2. بدافزار را گسترش دهید
  3. کامپیوتر کاربر را از راه دور کنترل کنید
  4. برنامه های اینترانت را اسکن و بهره برداری کنید


حملات XSS معمولاً خطر کمتری نسبت به تزریق SQL دارند. با این حال ، هنگامی که با مهندسی اجتماعی همراه می شود ، برنامه نویسی بین سایت به مجرمان سایبری اجازه می دهد تا حملات پیشرفته و بسیار خطرناکی را انجام دهند ، از جمله کاشت تروجان ، keylogging ، فیشینگ ، سرقت هویت و جعل درخواست از طریق سایت.

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

انواع حملات XSS
انواع حملات XSS
سه نوع اصلی از حملات اسکریپت متقابل سایت وجود دارد: منعکس شده (Reflected)، ذخیره شده (Stored) و XSS مبتنی بر DOM. برای داشتن دید بهتر از نحوه کار XSS ، بیایید نگاهی به هر نوع آسیب پذیری XSS بیندازیم.

اسکریپت نویسی بین سایت ذخیره شده

هنگامی که ورودی کاربر در یک پایگاه داده ، فیلد نظرات ، گزارش بازدید کننده یا سایر سرورهای هدف ذخیره می شود ، یک آسیب پذیری ذخیره شده XSS (Persistent or Type I) رخ می دهد و سپس یک قربانی می تواند داده های ذخیره شده (که برای ارائه در مرورگر ایمن نشده است) را از برنامه وب بازیابی کند. به این ترتیب ، وقتی هکر حمله ای را انجام می دهد برای فیلتر XSS مرورگر قابل مشاهده نیست و قربانیان در صورت مراجعه به صفحه آسیب دیده می توانند به طور تصادفی بارگیری را تحریک کنند.


بازنویسی برنامه نویسی بین سایت

هنگامی که یک برنامه وب بلافاصله ورودی کاربر را در یک نتیجه جستجو ، پیام خطا یا هر پاسخ دیگری بازگرداند ، یک آسیب پذیری XSS منعکس شده (Non-persistent or Type II) اتفاق می افتد. در این حالت ، داده های ورودی کاربر بدون ذخیره شدن منعکس می شود ، بنابراین به هکرها امکان تزریق اسکریپت های مخرب XSS را می دهد. برخلاف XSS ذخیره شده ، XSS منعکس شده بیش از بازدید کنندگان وب سایت ، خود وب سایت را هدف قرار می دهد.

XSS مبتنی بر DOM

آسیب پذیری XSS مبتنی بر TA DOM (معروف به نوع 0) به جای اینکه در بخشی از HTML رخ دهد ، در DOM (مدل شی Doc اسناد) رخ می دهد. منبعی که کد مخرب خوانده می شود می تواند یک URL یا یک عنصر خاص از HTML باشد.


چگونه از حملات اسکریپت متقابل سایت جلوگیری کنیم؟

اکنون ، همانطور که اصول XSS را بیان کردیم ، بیایید نگاهی به روش های اثبات شده برای جلوگیری از حملات XSS بیندازیم.

یکی از روشهای موثر برای جلوگیری از حملات XSS استفاده از یک هاست وردپرس امن است. هاست وردپرسی که از افزونه های امنیتی بروز و دقیق مثل Mod Security استفاده میکنند براحتی می توانند از حملات XSS و یا اجرای کدهای XSS روی سایت شما جلوگیری کنند. ما در بهسازان هاست با استفاده از کدهای اختصاصی و حرفه ای Mod Security تلاش زیادی انجام داده ایم تا جلوی حملات XSS به سایت شما را بگیریم. برای داشتن یک وب سایت امن وردپرسی حتما از هاست مخصوص وردپرس بهسازان هاست استفاده نمایید.


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

در ضمن ، دو کار وجود دارد که می توانید برای جلوگیری از حملات اسکریپت میان سایت انجام دهید.


یک پلاگین امنیتی نصب کنید

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

  1. یک افزونه وب سایت شما را به طور منظم از نظر بدافزار اسکن می کند.
  2. یک افزونه از فایروال ها برای جلوگیری از ترافیکی که مخرب به نظر می رسد استفاده می کند.
  3. یک افزونه قادر به اجرای اقدامات سخت افزاری وردپرس است.
  4. یک افزونه به شما امکان می دهد تمام به روزرسانی های وردپرس را مدیریت کنید.
  5. یک افزونه از وب سایت وردپرس شما پشتیبان تهیه می کند ، بنابراین در صورت حمله می توانید وب سایت خود را بازیابی کنید.

یک پلاگین اختصاصی نصب کنید

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

نتیجه نهایی - 39٪ از تمام آسیب پذیری های وردپرس با مشکلات مربوط به برنامه نویسی بین سایت مرتبط هستند. شرکت ها میلیون ها دلار از دست می دهند تا تلاش کنند با عواقب حملات برنامه نویسی بین سایت مقابله کنند. برای جلوگیری از حملات XSS که وب سایت شما را هدف قرار داده است مهم است که بفهمید برنامه نویسی بین سایت چیست و اقدامات پیشگیرانه را انجام دهید.

برای ایمن نگه داشتن وب سایت خود از نوشتن اسکریپت بین سایت ، باید فیلدهای ورودی خود را تأیید کرده و آنها را تمیز کنید. علاوه بر این ، می توانید پلاگین های امنیتی و اختصاصی ضد XSS را نصب کنید که به شما کمک می کند وب سایت وردپرس خود را ایمن نگه دارید.

امیدوارم این مقاله اطلاعات لازم درباره Cross-site Scripting (XSS) را به شما داده و کمک کرده باشد سایتی امن و سالم داشته باشید.

ثبت دامنه

ثبت دامنه

ثبت انواع دامنه ملی، دامنه بین المللی، دامنه فارسی و پسوندهای جدید دامنه

طراحی سایت

طراحی سایت

می توانیم برای شما طراحی اختصاصی انجام دهیم با گارانتی و پشتیبانی حرفه ای

میزبانی وب

میزبانی وب

هاست لینوکس، هاست نامحدود، هاست وردپرس، جوملا و هاست سی پنل

نمادهای اعتماد به بهسازان هاست

بهسازان فناوران داده نگار به شماره ثبت 549875 (بهسازان هاست) جزو معدود وب سایتهای هاستینگ و طراحی وب سایت کشور می باشد که عضو سازمان نظام صنفی رایانه ای استان تهران، دارای نشان ملی ثبت از ستاد ساماندهی وب سایت ها و دارای نماد اعتماد الکترونکی از وزارت صنعت می باشد.

سازمان تنظیم مقررات رادیویی

نظام صنفی رایانه ای استان تهران

logo-samandehi