Pregunta

Tenemos un par de desarrolladores que solicitan que allow_url_fopen esté 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 permitirlo?

El entorno es: Windows 2003, PHP 5.2.6, FastCGI

¿Fue útil?

Solución

Definitivamente, usted quiere que allow_url_include esté desactivado, 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 desactivar Fopen. Al igual que con todas las funciones, la realidad es que si no la necesita para su aplicación, inhabilítela. Si lo necesita, es probable que el módulo curl pueda hacerlo mejor, y refactorizar su aplicación para usar curl para deshabilitar allow_url_fopen puede disuadir al cracker menos determinado.

Otros consejos

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

La forma en que lo veo es que si trata a sus desarrolladores como si fueran niños y nunca los deja manejar cosas afiladas, entonces tendrá desarrolladores que nunca aprenden la responsabilidad de escribir código seguro.

Los ataques de secuencias de comandos entre sitios son un dolor, por lo que es un voto en contra. Y absolutamente debe tener " allow_url_include " desactivado, o te enfrentarás a un mundo de dolor.

Depende del tipo de desarrollo. Si su creación de prototipos, entonces habilitar 'allow_url_fopen' está bien, 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 estar marcada para una auditoría de seguridad. Como debe fopen y file_get_contents si 'allow_url_fopen' está habilitado. Deshabilitar 'allow_url_fopen' no evita los ataques, solo limita ligeramente la cantidad de formas en que se pueden hacer.

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

  
      
  • CURL solo es bueno para recuperar contenido remoto desde una URL.    (allow_url_fopen no es necesario)
  •   
  • CURL debe agregarse con Fopen o File_get si desea guardar el control remoto   archivo a su servidor.    (allow_url_fopen obligatorio con CURL)
  •   

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top