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
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é.
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é.
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.
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.