PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : جلوگیری از سرقت کلیک در asp.net



name3
January 14th, 2014, 00:06
با استفاده از تکنیک Click Jacking می توان کلیک های یک وب سایت را ***ید. این تکنیک با استفاده از ویژگی z-index در تگ های DIV و IFrame پیاده سازی می شود. یعنی یک سایت تقلبی را بر روی سایت واقعی بگذاریم و با این کار تراکنش های سایت اصلی را تخریب کنیم یا ب***یم. خوب چه جوری این طوری شد؟ سایت تقلبی صفحه سایت اصلی را در IFrame خودش باز می کند و سایت اصلی را در پشت زمینه قرار می دهد و خاصیت transparency آن را با false مقداردهی می کند. با استفاده از این مکانیزم، سایت تقلبی بازدیدکننده های سایت اصلی را ناخواسته مجبور می کند که با استفاده از اطلاعات سایت تقلبی به فعالیت در سایت اصلی بپردازند.

تکنیک سرقت کلیک
در ادامه دو مرحله برای پیاده سازی click jacking را معرفی می کنیم:


برای ویژگی z-index سایت اصلی یک مقدار پایین را در نظر بگیرید ( مثلا 5).
برای ویژگی z-index سایت تقلبی یک مقدار بالاتر را در نظر بگیرید (مثلا 10).




1
2
3
4
5
6
7
8
9
10
11
12
13

<html>
<body>
<iframe src="Microsoft Corporation (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>








http://security.itpro.ir/resources/images/bc22a9f2f0854f87a9ee4fd86b53aa70


مفهوم ساده ای است. سایت تقلبی بر روی سایت اصلی قرار می گیرد، به طوری که هر کاری که روی سایت تقلبی انجام دهید، رویدادهای (event) سایت اصلی را فعال می کند. با این روش سایت تقلبی تراکنش های بی اعتبار را ایجاد می کند و در اصطلاح می گوییم که سایت اصلی در برابر click-jacking یا ***ی کلیک خطرپذیر است.

سناریوی واقعی
تصور کنید که یک فروشگاه کتاب اینترنتی داریم. یک سایت دیگر هم دقیقا با این اطلاعات وجود دارد که تنها تفاوت آن در این است که کاربران را مجبور می کند که تراکنش خاصی را انجام دهند. در این سناریو یک سایت واقعی داریم که برای هر کتاب یک دکمه "خرید" دارد و یک سایت تقلبی داریم که به جای دکمه "خرید" دکمه "اهدا" را دارد. البته توجه داشته باشید که دکمه اهدا رویداد خاصی را ندارد و زمانی که کاربر دکمه تقلبی اهدا را فشار می دهد، در واقع دکمه خرید در سایت اصلی که z-index کمتری دارد را فعال می کند. به همین راحتی هکرها از سایت تان سوء استفاده می کنند.

راه حل هایی برای Click Jacking
راه حل های زیر برای معماری .NET هستند اما هر تکنولوژی راه حل هایی برای این مشکل دارد. با استفاده از X-frame-option که بسیار قدرتمند است، می توانیم سایت هایمان را در برابر سوء استفاده های click jacking مقاوم کنیم.
سه راه حل داریم:

راه حل 1:
کد زیر را در فایل Global.asax از web application بنویسید



1
2
3
4

Void Application_BeginRequest(object sender, EventArgs e)
{
This.Response.Header[“X-Frame-Options”] = “DENY”;
}







در اینجا لازم است به یک نکته اشاره کنم که ممکن است با خطای زیر مواجه شوید:


1

Error: This operation requires IIS integrated pipeline mode”







راه حل 2. این کد برای همه روش های احراز هویت کار می کند



1
2
3
4

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را بفرستید.



IIS را باز کنید (با استفاده از دستور inetmgr).
فولدر سایت را باز کنید و بر روی سایتتان کلیک راست کنید و وارد Properties شوید.
وارد تب Http Header شوید.
به قسمت Custom Header بروید.
روی Add کلیک کنید.
داخل Custom Header Name این عبارت را تایپ کنید:

1

X-Frame-Options Custom Header Value: “DENY”







اگر سایتی در یکی از زیرمجموعه ها داشته باشید، IIS از شما می پرسد که آیا می خواهید که این تنظیمات بر روی آن ها هم اعمال شود یا نه.
OK را فشار دهید و با استفاده از دستور iisreset آن را ریست کنید.




آموزش :: جلوگیری از سرقت کلیک در ASP.NET (http://security.itpro.ir/tutorials/2850/%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%B3%D8%B1%D9%82%D8%AA-%DA%A9%D9%84%DB%8C%DA%A9-%D8%AF%D8%B1-ASP-NET)