Cross Site Scripting

تمامی حملات XSS فرم های وب سایت شما را از طریق ورودی کاربر (User Input) آلوده می کند. XSS می تواند از طریق یک <Form> ساده که توسط کاربر تایید می شود و یا اسکریپتی همانند JSON و XML Web Service و یا از طریق کوکی تزریق شود. در تمامی این موارد برنامه نویس می بایستی آگاه باشد که اطلاعات از منابع خارجی وارد وب سایت شده و در نتیجه نبایستی به آنها اطمینان نماید.

بسیاری از برنامه نویسان سعی می کنند از طریق مکانیزم فیلترینگ خود استفاده نمایند. آنها معمولا کدهای تحت سرور (به زبان ASP یا PHP و یا زبانهای دیگر برنامه نویسی) در جهت جستجو برای واژه های کلیدی را پیاده سازی کرده و سعی به حذف رشته ها می نمایند. در بسیاری موارد نیز از عبارت های منظم (Regular Expression) در جهت فیلتر کردن و جایگزین نمودن کاراکتر ها استفاده می کنند. این روش ها مطمئنا روش های بدی نمی باشند اما توجه کنید که معمولا هکر ها تجربه بیشتری نسبت به شما داشته و با استفاده از تکنیک هایی همانند hex coding و یا unicode character variations قربانیان خود را به دام می اندازند و به همین جهت است که پیشنهاد می شود از کتابخانه های آماده که قبلا نیز تست شده است، استفاده گردد.

فرار از  XSS

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

در HTML شما قادر به فرار (Escape) از کاراکترهای خطرناکی با استفاده از #& که به همراه آن Character Code می آید، خواهید بود. کد فرار (Escape) > شبیه 60#& بوده و کد فرار < شبیه  62#& می باشد. در زیر لیستی از کدهای فرار متداول آورده شده است:

” —> &#34
# —> &#35
& —> &#38
‘ —> &#39
( —> &#40
) —> &#41
/ —> &#47
; —> &#59
< —> &#60
> —> &#62

فرار از کدهای HTML آسان می باشد اما به منظور آنکه از تمامی حملات XSS در امان باشید می بایستی از Javascript، Cascading Style Sheets و همچنین داده های XML نیز فرار کنید که محافظت از همه اینها کار بسیار پیچیده و طاقت فرسایی می باشد و به همین دلیل است که استفاده از Escaping Library برای برنامه نویسان پیشنهاد می گردد.

برای مثال می توان به دو کتابخانه معروف و در دسترس با اسامی ESAPI تهیه شده توسط OWASP و AntiXSS تهیه شده توسط مایکروسافت اشاره کرد. EASPI می تواند در زبانهای برنامه نویسی Java, .NET, PHP, Classic ASP, Cold Fusion, Python و Haskell توسط plugin مورد استفاده قرار گیرد اما AntiXSS تنها مختص محیط های برنامه نویسی تحت شرکت مایکروسافت استفاده می گردد. هر دو تکنولوژی تا به امروز بروز گردیده و حتی در HTML5 نیز گسترش یافته اند.

اسکن امنیتی وب سایت
(5000 تومان)

نوع وب سایت: وبلاگ، شرکتی، تجارت الکترونیک و کسب و کارحرفه ای
آسیب پذیری های OWASP (شامل بررسی 10 آسیب پذیری متداول)
اسکن نرم افزار/وب سایت توسط Acunetix نسخه 11
اسکن تمامی پورت ها با ابزار Nmap
اسکن وب سرور و پیکربندی آن توسط ابزار Nikto
اسکن تزریق توسط نرم افزار قدرتمند SQLmap