با استفاده از تکنیک Click Jacking می توان کلیک های یک وب سایت را دزدید. این تکنیک با استفاده از ویژگی z-index در تگ های DIV و IFrame پیاده سازی می شود. یعنی یک سایت تقلبی را بر روی سایت واقعی بگذاریم و با این کار تراکنش های سایت اصلی را تخریب کنیم یا بدزدیم. خوب چه جوری این طوری شد؟ سایت تقلبی صفحه سایت اصلی را در IFrame خودش باز می کند و سایت اصلی را در پشت زمینه قرار می دهد و خاصیت transparency آن را با false مقداردهی می کند. با استفاده از این مکانیزم، سایت تقلبی بازدیدکننده های سایت اصلی را ناخواسته مجبور می کند که با استفاده از اطلاعات سایت تقلبی به فعالیت در سایت اصلی بپردازند.
در ادامه دو مرحله برای پیاده سازی click jacking را معرفی می کنیم:
<html> <body> <iframe src="http://www.microsoft.com" allowtransparency="false" style="float; position: absolute; left: -5px; top: 12px; width: 731px; background: white; height: 259px; z-index: 5; margin-top: 0px;" border="0" frameborder="0" scrolling="no"/> <div style="position:absolute; left:0px; top:0px; width: 250px; height: 200px; background:white; z-index:10"> <h1>Click Jacking</h1> </div> </body> </html>
مفهوم ساده ای است. سایت تقلبی بر روی سایت اصلی قرار می گیرد، به طوری که هر کاری که روی سایت تقلبی انجام دهید، رویدادهای (event) سایت اصلی را فعال می کند. با این روش سایت تقلبی تراکنش های بی اعتبار را ایجاد می کند و در اصطلاح می گوییم که سایت اصلی در برابر click-jacking یا دزدی کلیک خطرپذیر است.
تصور کنید که یک فروشگاه کتاب اینترنتی داریم. یک سایت دیگر هم دقیقا با این اطلاعات وجود دارد که تنها تفاوت آن در این است که کاربران را مجبور می کند که تراکنش خاصی را انجام دهند. در این سناریو یک سایت واقعی داریم که برای هر کتاب یک دکمه "خرید" دارد و یک سایت تقلبی داریم که به جای دکمه "خرید" دکمه "اهدا" را دارد. البته توجه داشته باشید که دکمه اهدا رویداد خاصی را ندارد و زمانی که کاربر دکمه تقلبی اهدا را فشار می دهد، در واقع دکمه خرید در سایت اصلی که z-index کمتری دارد را فعال می کند. به همین راحتی هکرها از سایت تان سوء استفاده می کنند.
راه حل های زیر برای معماری .NET هستند اما هر تکنولوژی راه حل هایی برای این مشکل دارد. با استفاده از X-frame-option که بسیار قدرتمند است، می توانیم سایت هایمان را در برابر سوء استفاده های click jacking مقاوم کنیم.
سه راه حل داریم:
راه حل 1:
کد زیر را در فایل Global.asax از web application بنویسید
Void Application_BeginRequest(object sender, EventArgs e) { This.Response.Header[“X-Frame-Options”] = “DENY”; }
در اینجا لازم است به یک نکته اشاره کنم که ممکن است با خطای زیر مواجه شوید:
Error: This operation requires IIS integrated pipeline mode”
راه حل 2. این کد برای همه روش های احراز هویت کار می کند
Void Application_BeginRequest(object sender, EventArgs e) { HttpContext.Current.Response.AddHeader(“x-frame-options”, “DENY”); }
راه حل 3. مستقیما می توانیم x-frame-options را دستکاری کنیم و این محدودیت را ایجاد کنیم.
مادامی که سایت ها در برابر click jacking خطرپذیر هستند، هکرها می توانند با استفاده از Cross Site Scripting یا همان XSS یک کاربر را فریب دهند تا لینک های نامربوط را کلیک کنند. با استفاده ازIIS می توانید هدر X-Frame-Optionsرا بفرستید.
X-Frame-Options Custom Header Value: “DENY”
نویسنده: پویا فضلعلی
منبع: انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر نام منبع و نویسنده دارای اشکال اخلاقی می باشد.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود