htaccess allow_url_fopen php configuration

php - allow_url_fopen htaccess



¿Debo permitir ''allow_url_fopen'' en PHP? (5)

Creo que la respuesta se reduce a qué tan bien confías en tus desarrolladores para usar la función de manera responsable. Los datos de una URL externa deben tratarse como cualquier otra información que no sea de confianza y, siempre que se entienda, ¿cuál es el problema?

La forma en que lo veo es que si tratas a tus desarrolladores como si fueran niños y nunca les permites manejar cosas afiladas, entonces tendrás desarrolladores que nunca aprenderán la responsabilidad de escribir código seguro.

Tenemos un par de desarrolladores pidiendo allow_url_fopen para ser habilitado en nuestro servidor. ¿Cuál es la norma en estos días y si libcurl está habilitado ¿hay realmente alguna buena razón para permitir?

El entorno es: Windows 2003, PHP 5.2.6, FastCGI


Definitivamente quiere allow_url_include establecido en Off, lo que mitiga muchos de los riesgos de allow_url_fopen también.

Pero como no todas las versiones de PHP tienen allow_url_include , la mejor práctica para muchos es apagar fopen. Al igual que con todas las características, la realidad es que si no la necesita para su aplicación, desactívela. Si lo necesita, es probable que el módulo curl lo haga mejor, y la refacturación de su aplicación para usar curl para deshabilitar allow_url_fopen puede disuadir al cracker menos determinado.


Depende del tipo de desarrollo. Si su creación de prototipos y luego habilitar ''allow_url_fopen'' está bien, sin embargo, no hay una diferencia de velocidad significativa entre libcurl y file_get_contents y habilitarlo es solo una cuestión de conveniencia.

Para los servidores de producción, cualquier llamada a libcurl debe marcarse para una auditoría de seguridad. Como debe fopen y file_get_contents si ''allow_url_fopen'' está habilitado. La desactivación de ''allow_url_fopen'' no evita los exploits, solo limita ligeramente la cantidad de formas en que se pueden hacer.


El gran problema es que allow_url_fopen no es más seguro , por lo que si desea guardar el archivo de una url usando curl, debe pasar desde fopen / file_get para guardar el archivo.

  • CURL solo sirve para recuperar contenido remoto de la URL. (allow_url_fopen no es necesario)
  • CURL se debe agregar con Fopen o File_get si desea guardar el archivo remoto en su servidor. (allow_url_fopen obligatorio con CURL)

Php debe encontrar otras formas de hacerlo más seguro.


Los ataques de scripting entre sitios son un dolor, por lo que es un voto en contra. Y debe tener absolutamente " allow_url_include " establecido en off, o estará en un mundo de dolor.