PhantomJS/CasperJS가 HTTPS 페이지 로드에 어려움을 겪음
PhantomJS/CasperJS를 사용하여 보안 HTTPS 페이지를 로드하려고 하면 사용자에게 오류가 발생할 수 있습니다. "PhantomJS가 페이지를 열지 못했습니다. 상태=실패." 이 문제를 해결하려면 SSLv3 취약점을 해결하기 위한 구체적인 전략이 필요합니다.
오류 분석
최근 POODLE SSLv3 취약점이 발견되면서 웹사이트 소유자는 사이트에서 SSLv3 지원을 비활성화해야 했습니다. . 그러나 1.9.8 이전의 PhantomJS 버전은 기본적으로 SSLv3를 사용하므로 이러한 웹 사이트에 액세스하면 로드 오류가 발생할 수 있습니다.
해결책
이 문제를 해결하려면 PhantomJS 호출 시 TLSv1 프로토콜 사용:
casperjs --ssl-protocol=tlsv1 yourScript.js
다른 SSL 프로토콜을 사용하는 향후 PhantomJS 버전을 수용할 수 있는 보다 포괄적인 솔루션을 위해 다음을 사용하십시오.
casperjs --ssl-protocol=any yourScript.js
대안 접근 방식
또는 SSLv3 취약점 문제를 방지하려면 PhantomJS 1.9.8 이상으로 업데이트하세요. 그러나 이로 인해 CasperJS에 영향을 미치는 다른 버그가 발생할 수 있습니다.
확인
SSLv3이 근본적인 문제인지 확인하려면 CasperJS에 resources.error 이벤트 핸들러를 구현하세요. 스크립트:
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); });
표시된 오류 메시지에 "오류 코드: 6. 설명: SSL 핸드셰이크 실패"가 포함된 경우 SSLv3 관련 문제일 가능성이 높습니다.
추가 팁
인증서 관련 오류의 경우 --ignore-ssl-errors=true 명령줄 옵션 활용을 고려해 보세요.
위 내용은 PhantomJS/CasperJS의 HTTPS 페이지 로드 문제를 극복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!