PhantomJS/CasperJS Bergelut dengan Pemuatan Halaman HTTPS
Apabila cuba memuatkan halaman HTTPS selamat menggunakan PhantomJS/CasperJS, pengguna mungkin menghadapi ralat "PhantomJS gagal membuka status halaman=gagal." Menangani isu ini memerlukan strategi khusus untuk menangani kerentanan SSLv3.
Analisis Ralat
Penemuan terbaru tentang kelemahan POODLE SSLv3 telah mendorong pemilik tapak web untuk melumpuhkan sokongan SSLv3 di tapak mereka . Walau bagaimanapun, memandangkan versi PhantomJS sebelum 1.9.8 menggunakan SSLv3 secara lalai, mengakses tapak web sedemikian boleh membawa kepada kegagalan pemuatan.
Penyelesaian
Untuk menyelesaikan isu ini, nyatakan penggunaan protokol TLSv1 apabila menggunakan PhantomJS:
casperjs --ssl-protocol=tlsv1 yourScript.js
Untuk penyelesaian yang lebih komprehensif yang boleh menampung versi PhantomJS masa hadapan dengan protokol SSL yang berbeza, gunakan yang berikut:
casperjs --ssl-protocol=any yourScript.js
Alternatif Pendekatan
Sebagai alternatif, kemas kini kepada PhantomJS 1.9.8 atau lebih tinggi untuk mengelakkan isu kerentanan SSLv3. Walau bagaimanapun, ini mungkin memperkenalkan pepijat berbeza yang mempengaruhi CasperJS.
Pengesahan
Untuk mengesahkan sama ada SSLv3 ialah isu asas, laksanakan pengendali acara resource.error dalam CasperJS anda skrip:
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); });
Jika mesej ralat yang dipaparkan termasuk "Kod ralat: 6. Perihalan: Jabat tangan SSL gagal," itu mungkin isu berkaitan SSLv3.
Petua Tambahan
Untuk ralat berkaitan sijil, pertimbangkan untuk menggunakan pilihan --ignore-ssl-errors=true baris arahan.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Isu Pemuatan Halaman HTTPS dengan PhantomJS/CasperJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!