Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if site is inside iframe

Tags:

php

iframe

Anyone know if it's possible to check if a site is inside an iframe with PHP.

I know it's possible with javascript, but i couldn't find any example with PHP?

like image 885
Simon Thomsen Avatar asked Jul 12 '11 10:07

Simon Thomsen


People also ask

Can any website be embedded in an iframe?

Embedding webpages using an IFrame. An IFrame is HTML code that you can use to embed one HTML page, PDF page, another website, or other web safe file into a another webpage inside a window. The window can be styled using css code. IFrames do not make a website a "framed" site and do not affect SEO.


2 Answers

PHP is never in an iframe. PHP is executed on the server side and generates output such as HTML, Javascript, or text. The output generated by PHP may produce or reside within an iframe, but never PHP itself.


ADDITIONAL DETAIL

With regard to the additional detail you added in comments (that you want to distinguish between requests directly to your site and requests via a Facebook application) there are a few techniques you can use:

  1. $_SERVER['HTTP_REFERER']:

You can check the referrer to determine if a request came from a Facebook URL, from another page on your own site, from a third-party site, or if it was direct traffic. This method is not foolproof, but may provide more information than your application currently receives.

  1. Separate URLs

You can create separate URLs for the application running on your site and the Facebook version. Using $_SERVER['REQUEST_URI'], you can easily detect whether your application was accessed via 'yoursite.com/fbapp' or 'yoursite.com/localapp'. Both URLs can reference the same scripts via Apache's mod_rewrite or the aliasing solution of your choice.

  1. URL Parameters

This method is possibly the easiest to implement. If you can provide URL parameters when you provide an application URL to Facebook, just add a parameter. For example:

?access_method=facebook 

In PHP, you can easily check for the existence and value of the access_method parameter, and take action as necessary.

like image 150
George Cummins Avatar answered Sep 28 '22 06:09

George Cummins


For anyone who lands on this old thread: There is a very easy way to check in PHP wether or not your page is loaded through an iframe.

if( isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] == 'iframe' ) {} 
like image 21
Patrick Buntsma Avatar answered Sep 28 '22 04:09

Patrick Buntsma