سفارش تبلیغ
صبا ویژن

سئو- استفاده از همه شگردها برای بالابردن ترافیک سایت

ادامه مبحث هدرهای سمت سرور (مایکروسافتی)

شاید با خود بگویید استفاده از X-Frame-Options خوبه ولی به شرطی که خودمون جایی از Iframe استفاده کرده باشیم.

اولا که اگر کسی بتواند به نحوی کد اسکریپت را در صفحات ما جا بزند با همان کد جاواسکریپت می تواند iframe  هم در صفحه بسازد و نیازی نیست ما خودمان فریم داشته باشیم که در هر دو صورت  اگر صفحه ما دارای متای X-Frame-Options از نوع deny باشداسکریپت فریم را می سازد اما مرورگر از فراخوانی صفحه قرار گرفته در src به دلیل متای قرار داده شده در صفحه خود داری می کند

در ثانی اصلا مطلب این نیست بلکه درست متوجه مطلب نشدید

قرار نیست ما حتما فرم در صفحاتمان داشته باشیم تا نیاز به این حفاظت پیدا کنیم بلکه باید مانع استفاده شدن از صفحاتمان  بصورت فریم شویم چرا که ClickJacking  ترفند نفوذ  از طریق قرار دادن صفحه بصورت iframe  در صفحه آماده شده برای این کار توسط هکر هست

اگر یک سرچ کوچیک در اینترنت بزنید روشهای این نوع نفوذ گفته شده البته به همه موارد اطمینان نکنید

مثلا اگر لینک زیر را برای یک فریم قرار دهید(این وبلاگ اجازه استفاده از فریم برای تست همزمان را نمی دهد)

http://security.stackexchange.com/questions/12896/does

میبینید  که اخطاری می دهد و در متن alert  اینطور نوشته شده

For security resons framing is not allowed;click OK to remove the frame

البته این سایت با اینکه  لوگوی خودش را

قرار داده حفاظت امنیتی را ناقص انجام داده یعنی عملا می توان دورش زد چون با غیر فعال کردن جاواسکریت می تونیم سایتشان را داخل فریم بکشیم بعد از طریق فایرباگ جاوااسکریتهاش را فراخوانی کنیم(من این کار را کردم جواب داد)

برای تکمیل این کار باید دو کار توسط این سایت امنیتی انجام می گرفت

1- باید متای مربوطه قرار داده می شد تا خود مرورگر مانع بارگذاری می شد یعنی یکی از دو متای زیر

< meta http-equiv="”X-FRAME-OPTIONS”" content= ”DENY” >



< meta http-equiv=”X-FRAME-OPTIONS”content= ”SAMEORIGIN” >

2-در حالت غیر فعال بودن جاوااسکریپت باید صفحه را به صفحه دیگری منتقل می کرد

< noscript > < meta http-equiv=”REFRESH” content=”0;URL=101.html” > < /noscript >

که در مثالی که من لینکش را در پی داده ام می توانید ببییند

هدر X-Frame-Options    بازی ما را کاملا در برابر حملات از این دست ایزوله می کند

من برای اینکه روش استفاده آن  کاملا مشهود شود نمونه آن را در اینجا برای شما قرار دادم(در اینترنت اکسپلورر ببینید)

http://google724.com/Combating_ClickJacking_methods

 روش کلاینت هم در حالت فعال بودن جاوا اسکریپت و هم غیرفعال بودن آن اجازه باز شدن صفحه را در فریم نمی دهد(این روش بدون استفاده از متای مربوطه  انجام شده  تا نشان داده شود حتی با مرورگرهای غیر استاندار هم صحیح کار می کند بدیهی است که از نظر فنی این متا هم باید گذاشته شود تا امنیت کامل شود)

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

من در بخش سرور دو نوع مثال آورده ام یکی مثالهایی از صفحات داخل سایت گوگل 724 

و دیگری مثالهایی از دو سایت رایج

یکی میهن نیک که از این روش محافظت استفاده نکرده

و یکی گوگل که اجازه باز شدن در فریم را نمی دهد

تمام مثالهای سرور و کلاینت را open new tab هم بکنید تا بازشدن در خارج فریم انها را هم ببینید

توضیحی هم در مورد X-XSS-Protection

این مورد علاوه بر ie در کروم هم اعمال شده و انتظار می رود مرورگرهای دیگر نیز در توسعه خود قرار بدهند

ضمن اینکه چه کسی گفته ما قرار نیست از طریق IE هک شویم پس استفاده از یک هدر هیچ مشکلی ایجاد نمی کند جز اینکه ما را با فیلترهای تعریف شده در IE و chrom در برابر حملات XSS بیمه می کند

شاید تصور کنید که

من صفحه لینک داده شده را خواندم نوشته شده:

is only supported on some IE browsers, it does not protect attacks against users who use other browsers.

درحالیکه اشتباه نویسنده است چون کروم هم  آن را اجرایی کرده

 اسنیف گفته شده را با اسنیف از بین مسیر isp ها اشتباه نکنید منظور از این اسنیف قرار دادن کدهای php  مثلا درون عکس برای کدخوانی است که توسط مرورگرهای کروم و اینترنت اکسپلورر ممانعت میشود(عکس هایی از این دست را باز نمی کنند) 

اینجا هم ما یک هدر ساده اضافه می کنیم که مشکلی ایجاد نمی کند

اما در مورد X-UA-Compatible

بدین منظور مایکروسافت الگوریتم نسبتا پیچیده ای را برای تغییر موتور مرورگر خود دارند که شماتیک آن را در زیر آورده ام

ضمنا برای مشهود شدن این مورد نیز یکی از باگهای جدی نسخه های قبل از 8  اینترنت اکسپلور را در اینتر یافته و برای تست انتخاب کردم

در این باگ به دلایلی  یک متن شناور(float)‌ مانع نمایش بلوک قبل از خود می شود

من این باگ را در یک صفحه ساده پیاده سازی کردم

بعد با یک select option هم قابلیت انتخاب تغییر Engine  مرورگر را برای کاربر قرار دادم

با تغییر Engine   یوزر ایجنت تغییر نمی کند بلکه تنها به مرورگر اعلام میشود که موتور خود را بر روی این نسخه قرار بده

به عبارتی ما با این کار لازم نیست برای تمام نسخه های اینترنت اکسپلور استایل بنویسم

فقط یک موتورش مثلا 8 را انتخاب می کنیم

اینطوری حتی اگر طرف نسخه 10 اینترنت اکسپلور مایکروسافت را  مورد استفاده قرار دهد خودمرورگر مثل مرورگر نسخه 8 کار می کند

صفحه تستی من برای همه نسخه ها هست می تونید خودتان تست کنید

اینجا را ببینید:http://google724.com/x_ua_compatible