web-dev-qa-db-fra.com

Dois-je autoriser 'allow_url_fopen' en PHP?

Nous avons quelques développeurs qui demandent allow_url_fopen à activer sur notre serveur. Quelle est la norme de nos jours et si libcurl est activé, y a-t-il vraiment une bonne raison de l'autoriser?

L'environnement est: Windows 2003, PHP 5.2.6, FastCGI

33
Kev

Vous voulez vraiment allow_url_include réglé sur Off, ce qui atténue de nombreux risques de allow_url_fopen ainsi que.

Mais parce que toutes les versions de PHP ont allow_url_include, la meilleure pratique pour beaucoup est de désactiver fopen. Comme pour toutes les fonctionnalités, la réalité est que si vous n'en avez pas besoin pour votre application, désactivez-la. Si vous en avez besoin, le module curl peut probablement le faire mieux et refactoriser votre application pour utiliser curl pour désactiver allow_url_fopen peut dissuader le cracker le moins déterminé.

17
Daniel Papasian

Je pense que la réponse se résume à la façon dont vous faites confiance à vos développeurs pour utiliser la fonctionnalité de manière responsable? Les données provenant d'une URL externe doivent être traitées comme n'importe quelle autre entrée non fiable et tant que cela est compris, quel est le problème?

Selon moi, si vous traitez vos développeurs comme des enfants et ne les laissez jamais gérer des choses pointues, vous aurez des développeurs qui n'apprendront jamais la responsabilité d'écrire du code sécurisé.

20
Sal

Cela dépend du type de développement. Si votre prototypage, l'activation de 'allow_url_fopen' est correct, mais il n'y a pas de différence de vitesse significative entre libcurl et file_get_contents et l'activation n'est qu'une question de commodité.

Pour les serveurs de production, tout appel à libcurl doit être signalé pour un audit de sécurité. Tout comme fopen et file_get_contents si 'allow_url_fopen' est activé. La désactivation de 'allow_url_fopen' n'empêche pas les exploits, elle limite seulement légèrement le nombre de façons dont ils peuvent être effectués.

2
gradbot

Les attaques de script intersite sont une douleur, c'est donc un vote contre. Et vous devriez absolument avoir " allow_url_include " désactivé, sinon vous serez dans un monde de souffrance.

2
Michael Cramer