Pergunta

Estou fazendo um aplicativo da Web no PHP e quero ler conteúdo de outro domínio. Parece que minhas principais opções são fopen e curl.

Quais são as principais diferenças entre esses dois métodos, especialmente em relação à segurança e opções disponíveis?

Importa se o URL é um site HTTP ou HTTPS?

Foi útil?

Solução

O CURL usa biblioteca externa e possui muito mais energia para personalizar a solicitação - cabeçalhos personalizados, gerando solicitação de postagem, enviando arquivos. Tudo o que você precisa, devo dizer.

O FOPEN é limitado a apenas fazer uma solicitação de obter o URL sem mais personalização.

Quanto ao cacho de segurança não é influenciado pela configuração de segurança no PHP (como o FOPEN proibido de URLs remotos e tal).

As duas possibilidades retornam os dados que você pode usar de todas as maneiras possíveis. Se você fizer um orifício de segurança no seu projeto, depois de obter os dados, é sua culpa, afinal.

Também não tenho certeza, mas acho que o FOPEN não pode lidar com conexões SSL (HTTPS). O FOPEN e o CURL suportam o SSL (conforme observado por Andy Shelllam em um comentário abaixo).

Outras dicas

Ver Quais são as diferenças importantes entre o uso do FOPEN ($ URL) e o Curl no PHP? Para algumas configurações de segurança que afetam o FOPEN, a saber, allow_url_include.

Além disso, observe que, com o CURL se você Setopt Curlopt_followLocation, o Curl segue redirecionamentos para arquivar: // Para buscar dados (ainda sujeitos a open_basedir). Redireciona para outros esquemas, como ftp: // pode ser pior (não testaram ftp: //). Sem esse setopt, o Curl não segue os redirecionamentos. FOPEN parece funcionar com 302 por padrão, mas apenas http: // -> http: // e não http: // -> arquivo: //.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top