سلام وقت بخیر
اگر یک برنامه نویس هستید، همیشه دغدغه داشتید که چطور امنیت رو داخل سایت یا برنامه اتون برقرار کنید؟؟
خب از قدیم قدیم گفتن امنیت هیچ موقع 100درصد نمیشه!! چرا؟ چون هرچی ما برنامه نویس ها می نویسیم یک نفر دیگه پیدا میشه و یه چیزی که ما فراموش کردیم ولی اون فراموش نکرده، این یه علت میشه که برنامه ما به فنا بره. اما حداقلش این هستش که ما جلوی اونایی اون فراموش نکرده رو هم بگیریم. زیاد توضیح ندم بریم سر بحث اصل مطلب.
دو نوع حمله متداول به سایت داریم :
1- Cross site scripting attacks || XSS
2- SQL Injection
حمله اول :
از طریق query string کوکی ها رو میدزدن و میبرن استفاده میکنن. (به خاطر همینه میگن وقتی کارتون با پنل اتون تموم شد خروج یا logout کنید تا کوکی هاتون دست هکر نیفته).
Response.Write("hello," + Request.QueryString("name"));
در ظاهر کد فوق هیچ گونه مشکلی نداره و طریقه کار و دست یابی به آن هماندد آدرس زیر است.
http://example.com/wellcome.aspx?name=ali
از طریق query string مقدار name دریافت شده و سپس یک پیام خوش آمدگویی برای کاربر ظاهر می شود. اما به کد زیر توجه کنید :
http://example.com/wellcoem.aspx?name=
کد فوق مخرب نیست و تنها پس از درخواست آدرس فوق به شکل داده شده یک Alert که Hi را نمایش می دهد ظاهر می گردد، اما تخریب از جایی شروع می شود که کاربری با دادن چنین لینکی در سایت ( برای مثال به مدیر سیستم و کلیک کردن طبیعی او بروی این لینک) محتویات کوکی مدیر سیستم را دزدیده و به آدرسی در سایتی دیگر منتقل و ثبت می کند ( از کوکی عموماً برای ثبت اطلاعات Login افراد استفاده می شود و به این صورت جعل خواهد شد).