+1 امتیاز
قبل در برنامه نویسی توسط (7.0هزار امتیاز)
ویرایش شده قبل توسط
حمله XSS چیست و چه روش هایی برای تست آن وجود دارد؟

ابزار هایی که برای این تست ها مفید می باشد چه ابزارهایی می باشند؟

1 پاسخ

+2 امتیاز
قبل توسط (484 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

تعاریف مختلفی برای حملات XSS وجود داره که، همگی در چند موضوع مهم باهم، همخوانی دارن.

  • XSS یا Cross-site scripting، نوعی از حملات سایبریه که دامنه ی رخداد اون،برنامه های تحت وب و به طور کلی صفحات پویای وب رو در بر میگیره. یعنی یه صفحه ی ایستای نوشته شده با HTML تنها، زمینه ی لازم برای چنین حملاتی رو نداره.
  • در XSS، طعمه خود کاربره و نه اون برنامه ی تحت وب
  • وب سرور و پایگاه داده ی اون، "ابزار" هکر هستن و نه "هدف" حمله ی اون.

سوال اینجاس که در عمل، سناریوی XSS چیه؟

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

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

یکی از شایع ترین و البته مخرب ترین حملات سایبری عصر حاضر همین Cross-site scripting هست. سناریوی بالا، تنها یه مثال ساده از این نوع حملات بود.

حالا راه حل چیه؟

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

  • مثلا اگر برای یه وب وردپرسی می خوایم در امان باشیم، باید سناریوی ما، فایل های سیستمی وردپرس رو به خوبی محافظت کنه؛ از افزونه های نا امن استفاده نکنیم و البته، سایر افزونه ها رو بروز نگه  داریم.
  • از بسته ی HTMLPurifier برای استاندارد کردن و کنترل خروجی ها استفاده کنیم.
  • از شرکت های معتبر امنیتی (که در ایران متاسفانه کم تر پیدا می شن) بخوایم وبسایت ما رو در این باره، پویش کنن.
  • در نوشتن اسکریپت های پی اچ پی، فیلتر های مناسب رو بر روی ورودی های کاربران اعمال کنیم.
  • با معماری MVC تحت یه موتور قالب مناسب، وبمون رو پیاده کنیم.

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

بقیه اش دیگه بستگی به سواد کاربرا داره؛ مثلا استفاده ی آگاهانه از افزونه های شبیه به NoScript، بروز نگه داشتن مرورگرشون و ... می تونه اونا رو در امان نگه داره.

برای آرمایش وب سایت ها و برنامه های تحت وب هم، می تونیم این راه ها رو پیگیری کنیم:

  • استفاده از افزونه های مثه XSS Me و RightClickXSS برای مرورگرای خانواده ی موزیلا
  • بهره گیری از پویشگرای تحت وب شرکت های معتبر

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

 

سوالات مشابه

0 امتیاز
1 پاسخ 595 بازدید
0 امتیاز
1 پاسخ 2.4هزار بازدید
0 امتیاز
1 پاسخ 2.0هزار بازدید
0 امتیاز
0 پاسخ 525 بازدید
0 امتیاز
1 پاسخ 680 بازدید
0 امتیاز
1 پاسخ 291 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط newmoein (0 امتیاز)
0 امتیاز
1 پاسخ 2.0هزار بازدید
0 امتیاز
2 پاسخ 4.5هزار بازدید
+1 امتیاز
1 پاسخ 5.7هزار بازدید
...