> Tech > Ne laissez pas une liberté totale aux script

Ne laissez pas une liberté totale aux script

Tech - Par iTPro - Publié le 24 juin 2010
email

Sous certaines conditions, PHP peut lire le contenu à la fois à partir des dossiers locaux et d’Internet. Ainsi, les fonctions include() et readfile() peuvent fort bien lire des noms de fichiers locaux comme /reports/quaterly.xls et des URL à distance comme http://www. example.com/remotefile.html.

Ne laissez pas une liberté totale aux script

justify; « >
Avec une telle puissance en mains, il convient de réfléchir à ce dont vous avez vraiment besoin et à restreindre ce qui n’est pas vraiment nécessaire. Ce genre de précaution accroît la protection contre des scripts dangereux imprévus et contre les chausse-trappes du réseau. php.ini contient des options qui restreignent les ressources auxquelles un script peut accéder.

En voici la liste : allow_url_include (par défaut : Off ; valeur recommandée : Off). Le réglage Off empêche vos applications d’exécuter (« d’inclure ») du code situé sur des serveurs distants. Normalement, les commandes telles que include() et require() peuvent inclure du code non seulement à partir du serveur local mais aussi à partir d’un distant, via un URL. Le danger du réglage On est que vous pourriez vous retrouver en train d’exécuter le script distant d’un assaillant.

Allow_url_inclu de a été introduit dans PHP 5.2 (Zend Core 2.0). En mode Off, allow_url_fopen est plus restrictif que allow_ url_include, empêchant même les applications de lire les fichiers distants via l’URL. Choisissez Off si l’application n’a pas besoin d’ouvrir d’autres URL, ou si vous pouvez remplacer l’extension cURL qui lit les URL à distance plus sûrement que les commandes natives.

open_basedir (par défaut : autoriser l’ouverture de tous les fichiers ; valeur recommandée : les dossiers dont votre application a besoin). Quand open_basedir est spécifiée avec une liste de dossiers, les commandes telles que readfile() et fopen() pourront accéder aux fichiers uniquement dans les dossiers spécifiés.

De ce fait, les scripts ne peuvent pas lire des données sensibles ni modifier des fichiers dans d’autres zones. Quand de multiples dossiers sont spécifiés, ils doivent être séparés par un signe deux-points (bien que les systèmes Windows utilisent un point-virgule). Par exemple open_basedir = /tmp/:/www/zendcore/htdocs/:/reports/ limitera les applications pour qu’elles ne puissent accéder qu’aux données des dossiers /tmp, /www/zendcore/htdocs, et /reports.

Téléchargez gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT