Maison >développement back-end >tutoriel php >Comment puis-je utiliser PHP cURL pour récupérer en toute sécurité des données à partir d'URL HTTPS ?

Comment puis-je utiliser PHP cURL pour récupérer en toute sécurité des données à partir d'URL HTTPS ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-14 11:22:10246parcourir

How Can I Use PHP cURL to Securely Retrieve Data from HTTPS URLs?

PHP CURL & HTTPS

Cet article aborde le problème de l'utilisation de PHP CURL pour récupérer des fichiers Web à partir d'URL HTTPS.

Le dilemme

La fonction fournie, get_web_page, rencontre un problème lors de la tentative de récupération de contenu depuis HTTPS URL.

Le correctif

Pour activer la prise en charge HTTPS, nous pouvons implémenter l'une des deux solutions suivantes :

Solution 1 : Option manuelle

Ajouter cette ligne à votre tableau d'options :

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

Attention : Ce correctif rapide désactive la vérification du certificat, ce qui rend votre système vulnérable aux attaques de l'homme du milieu.

Solution 2 : mise à jour de la fonction

Incorporez le même extrait de code dans la fonction get_web_page mise à jour :

/**
 * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
 * array containing the HTTP server response header fields and content.
 */
function get_web_page( $url )
{
    $options = array(
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => false,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => "spider", // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        CURLOPT_SSL_VERIFYPEER => false     // Disabled SSL Cert checks
    );

    $ch      = curl_init( $url );
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg  = curl_error( $ch );
    $header  = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
    return $header;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn