جلوگیری از نمایش سایت در iframe دیگر سایت ها

خب همانطور که میدانید iframe یکی از قابلیت های مفید می باشد که با استفاده از آن میتوان وب سایت دیگری را در سایت خود نشان داد. تا چند وقت پیش کاربرد اصلی iframe در لینک باکس ها دیده می‌شد. تا اینکه سایت های خبر خوان وارد عرصه شدند!

در وب ایران وقتی سایتی به موفقیت میرسد معمولا اکثر وبمسترها به این فکر می‌افتند که آنها هم همانند آن سایت را راه اندازی کنند بلکه شاید بتوانند همانند آن سایت به بازدید بالا و درآمد مناسب برسند. خلاصه اینکه همین مورد باعث شده الان کلی سایت خبر خوان فارسی وجود داشته باشد که روند رشد آنها همچنان ادامه دارد!

این سایت ها مطالب دیگر سایت ها را در آی فریم نمایش می دهند. در این حالت درست هست که بازدید کننده از سایت شما دیدن می کند ولی چون این نمایش از طریق frame می باشد روی رتبه الکسای سایت شما اثری نخواهد داشت.

همچنین خود همین سایت ها تبلیغاتی را به نمایش می گذارند برای همین درصدی از خریدها و سفارش هایی که می توانست از طریق سایت شما انجام بگیرد کاهش پیدا می کند.

خلاصه همه اینها یعنی شما کار می کنید و نتیجه را افراد دیگری برداشت می کنند. برای همین این حق شما هست که از نمایش سایت خود در دیگر سایت ها جلوگیری کنید. پس اگر دوست ندارید کسی سایت شما را به صورت فریم در وب سایت خود نمایش دهد، یکی از روش های زیر را انجام دهید.

 

روش اول با استفاده از htaccess

برای اینکه به کل هیچ iframe ای از سایت تان نمایش داده شود، کافیست کدهای زیر را در فایل htaccess. پوشه اصلی هاست کپی کنید. توجه داشته باشید که در این حالت حتی خودتان هم نخواهید توانست در وب سایت خود iframe نمایش دهید.

header("X-Frame-Options: SAMEORIGIN");

شاید لازم باشد خودتان برخی از صفحات سایت را در قسمتی از سایت برای نمایش بگذارید برای همین از کد زیر استفاده کنید. این کد باعث می شود که نمایش iframe فقط و فقط در وب سایت خودتان فعال باشد.

Header append X-FRAME-OPTIONS “DENY”

 

روش دوم با استفاده از جاوااسکریپت

روش قبلی فقط از نمایش سایت شما جلوگیری می کرد ولی در این روش می توانید به صورت حرفه ای تر عمل کنید و سایت را از فریم بیرون بکشید!

به عبارتی وقتی سایتی بخواهد صفحه ای وب سایت شما را در iframe نشان دهد کدهای جاوااسکریپت موجود در سایت شما آدرس را بررسی خواهند کرد. در صورتی که آدرس ها یکسان نباشند صفحه iframe بسته خواهد شد و بازدید کننده مستقیما به وب صفحه شما منتقل خواهد شد.

پیشنهاد شخص خود من استفاده از همین روش می باشد. چرا که در این حالت می توانید بازدید زیادی را برای سایت خود بدست آورید. (البته به شرطی که سایت شما را کسی بخواهد در فریم نمایش دهد.)

<script type="text/javascript">
if(top != self) top.location.replace(location);
</script>

کدهای بالا را در head سایت خود اضافه کنید.

 

هم اکنون که روش های جلوگیری از نمایش سایت خود به صورت iframe را فرا گرفته اید آیا از این روش ها استفاده خواهید کرد؟

پیام کیوانی

نوشتن رو دوست دارم، چون باعث افزایش آگاهی خواننده میشه. تمام سعی ام این هست که مطالبی که می نویسم برای افرادی هم که مراجعه می کنند مفید و کاربردی باشه ولی قطعا مواردی خواهند بود که اصلا به درد شما نمی خورن! چون اینجا "وبلاگ شخصی" هست.

۲۱ دیدگاه‌

  1. با سلام فقط میتونم بهت بگم خدا خیرت بده . چه رنجی کشیدم از دست آیفریم ه ابازدیدم رسید به 100 آیپی !

  2. این کد برای سئو سایت مضر نیست ؟

  3. Vahid گفت:

    بسیار عالی.
    فقط یه سوال :
    اگه بخوایم عکس این موضوع عمل کنیم باید چه کنیم؟
    ینی سایتی که از این روش استفاده کرده رو بپیچونیم.
    من میخوام سایتی رو بصورت آی فریم در سایت خوردم استفاده کنم که اجازه نمیده؛
    سایت sarafikish.com
    نرخ حوالجات ارزی رو میخوام تو سایت خودم نشون بدم که نمیشه!

    • برای عکس این موضوع خودم تا حالا کدی ندیدم ولی نمیگم که وجود نداره! دنبال اش میگردم اگر پیدا کردم اینجا میگم ولی پیدا کردن اش سخت خواهد بود چون این کد هدر ها را بررسی میکنه و دور زدن اش کار راحتی نخواهد بود.
      شما برای نمایش نرخ های ارزی میتونی با کدنویسی مقدار اونها رو دریافت کرده و در سایت خود نشان دهید و کل اون سایت رو با فریم نشون ندید.

      • Vahid گفت:

        سلام. من تو این سایت iframehtml یه کد پی اچ پی پیدا کردم که میتونه جاوا اسکریپت رو در آی فریم غیر فعال کنه
        کد به شرح زیر : $page = file_get_contents('URL HERE');

        echo strip_javascript($page, 0);

        function strip_javascript($filter, $allowed=0){
        if($allowed&1 == 0)
        $filter = preg_replace('/href=([\'"]).*?javascript:.*?\\1/i', "'", $filter);

        if($allowed&2 == 0)
        $filter = preg_replace("/.*?/i", "", $filter);

        if($allowed&4 == 0)
        $filter = preg_replace("/<(.*)?\son.+?=\s*?(['\"]).*?\\2/i", "<$1", $filter);
        return $filter;
        }

        اما مشکلی که هست اینه که تما اسکریپت ها رو غیرفعال میکنه! من میخوام از یه سایتکه نرخ حوالجات ارزی بصورت لحظه ای آپدیت میشه رو بردارم. از این کد ها استفاده کردم بازم نشد
        اگه امکانش هست صایت صرافی کیش رو بررسی کنید؛ وقتی تمام اسکریپت ها غیرفعال میشن نرخ ارز از جدول ها ناپدید میشه.
        دیگه نمیدونم باید چیکارکنم!!!؟

        • همانطور که گفتم دور زدن این کد کار ساده ای نیست و اگر به همین راحتی ها بود سایت های خبرخوان حتما اینکار رو انجام میدادن!
          برای گرفتن نرخ ها از سایت صرافی کیش هم نمیشه استفاده کرد چون مقادیر رو داره با Ajax نشون میده ولی میتونید از بانک مرکزی استفاده کنید. کافی چند خط کد برای گرفتن نرخ ها بنویسید و اونها رو تو سایت خودتون نشون بدید. البته برای اینکه سرعت لود سایتتون پایین نیاد بهتره نرخ ها رو تو دیتابیس ذخیره کنید و هر بار به سایت بانک مراجعه نشه.
          برای راه اندازی این سیستم تو گوگل جستجو کنید اگر خودتون تونستید انجام بدید که هیچ در غیراینصورت تو یه پست خودم آموزش اش رو میذارم.

  4. عالی بود من هم به همین خاطر ورودی گوگل سایتم داغون شد حالا فید سایتم رو بستم ایفریم رو هم به همین روش تغییر دادم .
    تشکر

  5. میلاد گفت:

    خیلی کد بدرد بخوری بود
    ممنونم ازتون

  6. مهدی گفت:

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

  7. 3dmaxfarsi گفت:

    اگر IP کل این جورسایت ها رو در سی پنل در قسمت IP Deny Manager وارد کنم، جلو ترافیک معمولی ام نمیگیره؟
    منظورم این هست ممکنه ip اون سایت ها با تعدادی از ip کاربران معمولی یکی باشه؟ و برام مشکل پبش بیاد؟

    • باتوجه به اینکه وب سایت ها از IP یکتا استفاده می کنند و مانند IP اینترنتی که خودمون استفاده می کنیم عوض نمیشن، بله شما میتونید IP اون سایت ها رو بَن کنید تا ربات هاشون به سایت شما دسترسی نتونن داشته باشند. این در شرایطی هست که بتونید IP خود ربات جمع آوری مطالب خبرخوان رو بدست بیارید چون در برخی موارد مشاهده شده IP ربات چیزی متفاوت از IP خود اون سایت بوده.

  8. 3dmaxfarsi گفت:

    ادمین جان این سایت mtcm-.-ir آی فریم نمیکنه.
    میاد مطالب کل پست ها رو کپی میکنه و داخل سایت اش به صورت متن مخفی نشون میده.
    حدود ۹ میلون صفحه ایندکس شده داره.به گوگل DMCA هم که گزاش میکنیم، میگه ULR متخلف نیست!
    شما که کار و تخصص تون همین هست، بگید تکلیف ما با این سایت های حرامخور چی؟

    • من یه نگاه جزئی به این سایت کردم و توش تخلفی ندیدم! مطالب سایتتون رو هم تو گوگل زدم که اصلا برام این سایت رو در نتایج نیاورد که بگیم بازدیدتون رو هم داره می دزده.
      ایندکس هاش هم ۹ میلیون نیست ۱٫۹ میلیون هست که خب باز هم زیاده و مشخص هست که سایت مطالب اش با ربات جمع آوری شده. روش کار این نوع اسکریپت ها به این شکل هست که برنامه نویس طوری سیستم رو مینویسه که ربات به سایت هایی که مشخص میشن مراجعه کرده و متون و تصاویر داخل پست رو به اسکریپت منتقل کنه، کاری که مدیران سایت هایی که چنین اسکریپت هایی ندارن با استخدام نویسنده انجام میدن!
      شما یه لینک از اون صفحه ای که میگید متن رو مخفی میکنه هم بدید تا من بهتر بررسی کنم.درضمن ساده ترین روش مقابله با این سایت ها در مرحله نخست تماس با مدیرش هست که بگید مطالب سایت شما رو کپی نکنه و یا حداقل با ذکر منبع باشه.
      روش دوم شکایت به پلیس فتا هست (در صورتی که اگر خودتون تولید کننده اصلی محتوا باشید) که یکم دردسر داره ولی به طور قطع به نتیجه خواهید رسید.
      روش سوم هم قطع دسترسی ربات اون سایت از طریق htaccess هست که پیشنهاد میکنم اول این گزینه رو امتحان کنید و اگر نشد راه های دیگه رو پیش بگیرید.

  9. غریب گفت:

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

    • سلام، شما می خواهید سایت های خاصی که خودتون مشخص می کنید نتونن فایل هاتون رو تو سایت شون بذارن؟ یه احتمال که میدم این هست که شما می خواهید دسترسی خبرخوان ها و ربات هایی که مطالب رو کپی می کنند رو بگیرید؟
      اگر بخواهید فقط فایل ها غیرقابل استفاده در سایت های دیگر باشند می تونید از همون روش هات لینک استفاده کنید و فقط مشخص کنید که روی اون چند تا سایت کار کنه! اما نه اگر منظور شما ربات ها هستند در این صورت اول باید ip ربات رو پیدا کنید و سپس از طریق بلاک کردن جلوی دسترسی اش به سایت خودتون رو بگیرید.
      اگر هم منظور شما هیچکدوم از دو مورد بالا نبود واضح تر بگید ، راحت تر می تونم کمک کنم

  10. رضا گفت:

    سلام خسته نباشید من میخواستم سایتمو توی این سایتای افزیش بازدید که از بازدید پنجره استفاده میکنند ثبت کنم ولی بهم میگن که سایتم حاوی کد های شکننده آیفریم هست چطور میتونم این مشکلو حل کنم؟
    با تشکر

    • سلام , دوست عزیز پیشنهاد می کنم سراغ استفاده از این سایت ها نری , چون هیچ فایده ای ندارند و این موضوع کاملا به اثبات رسیده و می تونید با کمی جستجو خودتون نیز به این موضوع آگاه شوید.
      در مورد کد شکننده آیفریم هم اگر از قالب آماده یا سیستم های وبلاگدهی استفاده می کنید از کدهای جاوااسکریپت هست. به کدهای بخش header قالب نگاه کنید , احتمالا اونجا کد مورد نظر بکار گرفته شده

  11. سلام دوست محترم
    یه سوال دارم . لینک صفحه اصلی من خیلی وقته در گوگل نیست . یعنی خیلی از لینکها ایندکسه و نشون داده میشه در جستجو ولی صفحه اصلی نیست . در سایت chkme که سرچ میکنم سایت رو نوشته شما یک آی فریم دارین . این آیفریم کجای سایت من قرار گرفته که نمیدونم ؟ چطور می تونم بفهمم کجاس که پاکش کنم ؟
    ممنون میشم راهنمایی کنید .

    • سلام ، اگر آدرس سایت شما همین مودم شاپ که وارد کردید باشه من وقتی خواستم بررسی کنم سایت شما اصلا لود نشد. تو گوگل هم ایندکس هاتون رو نگاه کردم و همانطور که خودتون گفتید بله صفحه اصلی ایندکس نشده که برای فهمیدن این موضوع سایت باید در دسترس بود. اگر درست شد خبر بدید تا دوباره بررسی کنم.

  12. با تشکر از توضیحات خوب سایتتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *