با سلام و خسته نباشید خدمت همراهان گرامی روکسو! یکی از وظایف شما به عنوان توسعه دهنده ی وب تامین امنیت برنامه های وب است که یکی از سرشاخه های آن موضوع حملات Cross-Site Scripting یا به اختصار XSS می باشد. ما می خواهیم در این سری کوتاه آموزشی با این نوع از حملات آشنا شده و راهکار مقابله با آن را پیدا کنیم. همچنین در مورد یک مسئله ی مهم (ذخیره سازی کوکی ها در localstorage یا cookies) صحبت خواهیم کرد. من برای شروع این جلسه یک کد آماده را برای شما قرار می دهم تا آن را دانلود کنید. این پروژه یک برنامه ی ساده است که به صورت مستقل روی مرورگر اجرا می شود اما برای اجرای حملات XSS معمولا به یک سرور نیز نیاز داریم. البته برنامه ی ما طوری نوشته شده که بتوانیم روی آن حملات XSS را نمایش بدهیم بنابراین جای نگرانی نیست. اگر این برنامه را باز کنید، می بینید که 2 فیلد داریم: فیلد اول (Your Message) یک پیام ساده و فیلد دوم (Message Image) یک تصویر برای این پیام است. اگر این برنامه را روی سرور قرار می دادیم قطعا این فیلد ها به سمت سروری ارسال شده و در یک پایگاه داده ذخیره می شوند (مثل هر برنامه ی دیگری که روی وب است). حالا به مسئله ی اصلی می رسیم. حملات XSS یا همان Cross-Site Scripting چه نوع حملاتی هستند؟ این حملات به طور خلاصه در مورد اجرای کد جاوا اسکریپت روی سیستم کاربران دیگر هستند! ساده ترین نوع این حملات بدین شکل است که کاربر مخرب در سایت شما dev tools مرورگر را باز کرده و از سربرگ source به کد های جاوا اسکریپت شما نگاه می اندازد. مثلا در کد های جاوا اسکرپیت ما یک تابع به نام formSubmitHandler وجود دارد که با ثبت شدن فرم اجرا شده و کار های ابتدایی را انجام می دهد (اعتبارسنجی ساده برای خالی نبودن فیلد ها و غیره). سپس متد دیگری به نام renderMessages صدا زده می شود که مسئول ساخت یک لیست و نمایش این محصولات می باشد. نکته ی مهم در کد های ما خط آخر متد renderMessages می باشد:
پنل نویسندگان
