Question

Je fais une application web en PHP et que vous souhaitez lire le contenu d'un autre domaine. Il semble que mes grandes options sont fopen et curl.

Quelles sont les principales différences entre ces deux méthodes, notamment en ce qui concerne les options de sécurité et disponibles?

Est-il important si l'URL est un http ou https site?

Était-ce utile?

La solution

Curl utilise la bibliothèque externe et il a beaucoup plus de pouvoir pour la personnalisation de la demande - en-têtes personnalisés, générant requête POST, le téléchargement de fichiers. Tout ce dont vous avez besoin, je dois dire.

fopen est limité à juste faire une requête GET de l'URL sans aucune autre personnalisation.

En ce qui concerne CURL de sécurité n'est pas influencée par la configuration de la sécurité en PHP (comme interdit fopen de URLS à distance et autres).

Les possibilités les deux vous renvoient des données que vous pouvez utiliser tous les moyens possibles que vous voulez. Si vous faites un trou de sécurité dans votre projet, après avoir obtenu les données de votre faute après tout.

Aussi je ne suis pas tout à fait sûr, mais je pense que fopen ne peut pas gérer les connexions. Les deux soutien fopen et CURL SSL (comme indiqué par Andy Shellam dans un commentaire ci-dessous).

Autres conseils

Voir Quels sont les différences importantes entre l'utilisation fopen ($ url) et boucle en PHP? pour certains paramètres de sécurité qui affectent fopen à savoir allow_url_include.

Notez également que si vous avec boucle CURLOPT_FOLLOWLOCATION setopt puis suit boucle redirige vers file: // pour extraire des données (encore soumis à open_basedir). Réoriente à d'autres systèmes tels que ftp: // pourrait être pire (ont pas testé ftp: //). Sans cette boucle de setopt ne suit pas les redirections du tout. fopen semble fonctionner avec 302 par défaut, mais seulement http: // -> http: // et pas http: // -> fichier:. //

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top