Pregunta

Estoy haciendo una aplicación web en PHP y quiero leer el contenido de otro dominio. Parece que mis principales opciones son fopen y curl.

¿Cuáles son las principales diferencias entre estos dos métodos, especialmente con respecto a las opciones de seguridad disponibles y?

¿Importa si la URL es un sitio HTTP o HTTPS?

¿Fue útil?

Solución

Curl utiliza biblioteca externa y tiene mucha más potencia a la personalización de la solicitud - cabeceras personalizadas, generando solicitud POST, carga de archivos. Todo lo que necesita, debo decir.

fopen se limita a sólo acaba de hacer una petición GET de la URL sin ninguna personalización aún más.

Como para el enrollamiento de seguridad no está influenciada por la configuración de seguridad en PHP (como prohibido fopen de URLs remotas y tal).

Las dos posibilidades que devuelven datos que se pueden utilizar en todas las formas posibles que desea. Si comete un agujero de seguridad en su proyecto, después de recibir los datos es su culpa después de todo.

También no estoy muy seguro pero creo que fopen no puede manejar conexiones SSL (HTTPS). Ambos soportan SSL fopen y CURL (como se ha señalado por Andy Shellam en un comentario más abajo).

Otros consejos

¿Cuáles son las importantes diferencias entre el uso de fopen ($ url) y el rizo en PHP? para algunas configuraciones de seguridad que afectan a saber fOPEN allow_url_include.

Además, cabe destacar que con el enrollamiento si CURLOPT_FOLLOWLOCATION setopt luego sigue rizo redirecciones a file: // para obtener los datos (siendo objeto de open_basedir). Redirecciones a otros esquemas tales como ftp: // podrían ser peores (no han probado ftp: //). Sin ese rizo setopt no sigue las redirecciones en absoluto. fopen parece funcionar con 302 por defecto, pero sólo http: // -> http: // y no http: // -> archivo:. //

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