Domanda

Sto facendo un'applicazione web in PHP e voglia di leggere il contenuto da un altro dominio. Sembra che le mie opzioni principali sono fopen e curl.

Quali sono le principali differenze tra questi due metodi, in particolare per quanto riguarda le opzioni di sicurezza e disponibili?

Che importa se l'URL è un sito http o https?

È stato utile?

Soluzione

Curl utilizza libreria esterna e ha molto più potere alla personalizzazione richiesta - intestazioni personalizzate, generando richiesta POST, il caricamento dei file. Tutto ciò che serve devo dire.

Fopen si limita al solo solo fare una richiesta GET di URL senza ulteriori personalizzazioni.

Per quanto riguarda la sicurezza CURL non è influenzata dalla configurazione di sicurezza in PHP (come proibito fopen di URL remoti e simili).

Le possibilità entrambi si restituiscono i dati che possono essere utilizzati in tutti i modi che vuoi. Se si fa un buco di sicurezza nel progetto, dopo aver ottenuto i dati è colpa tua, dopo tutto.

Anche io non sono del tutto sicuro, ma penso che fopen non può gestire SSL (https) connessioni. Sia fopen e CURL supporto SSL (come notato da Andy Shellam in un commento qui sotto).

Altri suggerimenti

Quali sono le importanti differenze tra l'utilizzo di fopen ($ url) e ricciolo in PHP? per alcune impostazioni di sicurezza che interessano fOPEN cioè allow_url_include.

Si noti inoltre che con l'arricciatura se CURLOPT_FOLLOWLOCATION setopt allora ricciolo segue reindirizza a file: // per recuperare i dati (ancora oggetto di open_basedir). Reindirizza a altri sistemi come ad esempio ftp: // potrebbe essere peggio (ftp non hanno testato: //). Senza quel ricciolo setopt non segue i reindirizzamenti a tutti. fopen sembra funzionare con 302 di default, ma solo http: // -> http: // e non http: // -> file: //.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top