PhantomJS/CasperJS a du mal avec le chargement de la page HTTPS
Lors de la tentative de chargement d'une page HTTPS sécurisée à l'aide de PhantomJS/CasperJS, les utilisateurs peuvent rencontrer l'erreur "PhantomJS n'a pas réussi à ouvrir la page status=fail." Résoudre ce problème nécessite une stratégie spécifique pour lutter contre les vulnérabilités SSLv3.
Analyse des erreurs
Les découvertes récentes de la vulnérabilité POODLE SSLv3 ont incité les propriétaires de sites Web à désactiver la prise en charge SSLv3 sur leurs sites. . Cependant, étant donné que les versions de PhantomJS antérieures à 1.9.8 utilisent SSLv3 par défaut, l'accès à ces sites Web peut entraîner des échecs de chargement.
Solution
Pour résoudre ce problème, spécifiez le utilisation du protocole TLSv1 lors de l'appel de PhantomJS :
casperjs --ssl-protocol=tlsv1 yourScript.js
Pour une solution plus complète pouvant prendre en charge les futures versions de PhantomJS avec différents protocoles SSL, utilisez ce qui suit :
casperjs --ssl-protocol=any yourScript.js
Alternative Approche
Vous pouvez également mettre à jour vers PhantomJS 1.9.8 ou une version ultérieure pour éviter les problèmes de vulnérabilité SSLv3. Cependant, cela peut introduire un bug différent qui affecte CasperJS.
Vérification
Pour vérifier si SSLv3 est le problème sous-jacent, implémentez un gestionnaire d'événements resource.error dans votre CasperJS. script :
casper.on("resource.error", function(resourceError){ console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')'); console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString); });
Si le message d'erreur affiché inclut « Code d'erreur : 6. Description : échec de la négociation SSL », il s'agit probablement d'un problème lié à SSLv3.
Conseil supplémentaire
Pour les erreurs liées au certificat, envisagez d'utiliser l'option de ligne de commande --ignore-ssl-errors=true.
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!