آسیب پذیری XSS به زبان ساده
- دوشنبه, ۲۴ آبان ۱۴۰۰، ۰۱:۱۹ ب.ظ
سلام دوستان ، امیدوارم روز خوبی داشته باشید.
امروز در این پست میخواهیم به عنوان اولین مطلب این وبلاگ به این موضوع بپردازیم که XSS چه نوع آسیب پذیری هست و اینکه چطور میتونیم جلوی این آسیب پذیری رو بگیریم.
کلمه 'XSS' مخفف عبارت 'Cross site scripting' میباشد . به دلیل اینکه مخفف cross site scripting به شکل C.S.S در میومد ، این تصمیم گرفته شد که از X در ابتدای این عبارت استفاده کنند تا با مفهوم CSS در طراحی front end اشتباده گرفته نشود.
اگر با front end و css آشنایی ندارید: front end به معنی ظاهر وبسایت ها و اپلیکیشن ها میباشد (در واقع می توان گفت تمام چیزی که کاربر در هنگام استفاده از اپلیکیشن یا وبسایت می بیند). CSS هم یکی از زبان های نشانه گذاری هست که برای طراحی ظاهر وبسایت ها استفاده میشه.)
برگردیم سر موضوع آسیب پذیری
همونطور که از اسم این آسیب پذیری پیدا است ، با وجود این آسیب پذیری فرد حمله کننده ، توانایی اجرای اسکریپت برروی وبسایت را خواهد داشت.
خب این به چه معنی هست؟ یعنی اینکه یک فرد میتونه اسکریپت های مخربی رو وارد سایت کنه ، که این باعث بشه اطلاعات کاربر های سایت افشا بشه، سایت دچار اختلال بشه و ... .
معمولا با وجود این آسیب پذیری اسکریپت های JS (javascript) از طرف فرد حمله کننده وارد سایت میشه.
چطور این آسیب پذیری اتفاق میفته ؟
زمانی که برنامه نویس برروی سایت ، موارد امنیتی رو رعایت نکنه میتونه منجر به جود این آسیب پذیری بشه. موارد امنیتی میتونه استفاده از هدر (header) Xss-protection باشه ، میتونه انجام validation های متفاوت برروی ورودی کاربر ها باشه.(به این معنی که در هر فیلدی که کاربر میتونه اطلاعاتی وارد کنه ، ورودی کاربر رو چک کنه که مورد مخربی نباشه ، یا همه ورودی ها رو به شکل متن نشون بده تا هیچ کد و دستوری توسط کاربر برروی سیستم اجرا نشه). و در آخر میتونه استفاده از یک فایروال وب باشه. فایروال ها یک نوع نرم افزار امنیتی هستن که توسط شخص ثالثی طراحی شدن و میشه ازشون استفاده کرد. این فایروال ها WAF ها یا web application firewall ها تماما برای این طراحی شدن تا وب اپلیکیشن ها رو از حملات مختلف حفظ کنن و فقط برای یک آسیب پذیری نیست.
مهم ترین مورد از موارد بالا ، input validation هست که باید خیلی در اجرای اون ها دقت کرد. چون در برخی موارد ، برنامه نویس سایت رو آپدیت کرده ، input validation گذاشته و خیالش از اینکه هیچ حمله ای رخ نمیده راحت بوده ولی ، دوباره اون validation با استفاده از یک سری متد دیگه دور زده شده و فرد هکر تونسته دوباره سایت رو هک کنه.
درباره کنترل ورودی ها و این آسیب پذیری در آینده بیشتر صحبت خواهیم کرد . امیدوارم دید کلی از این آسیب پذیری بدست آورده باشید و اگر سوال یا موردی هست در نظرات بفرستید ، در اسرع وقت بهشون پاسخ میدم. (طبق برنامه فعلی ، آخر هفته ها) از همراهی شما ممنونم، موفق باشید.
- ۰۰/۰۸/۲۴