首頁  >  文章  >  web前端  >  儘管有“ignore-ssl-errors”和用戶代理更改,為什麼 PhantomJS 仍無法加載 HTTPS 頁面?

儘管有“ignore-ssl-errors”和用戶代理更改,為什麼 PhantomJS 仍無法加載 HTTPS 頁面?

Patricia Arquette
Patricia Arquette原創
2024-10-26 01:38:28661瀏覽

Why is PhantomJS Failing to Load HTTPS Pages Despite

PhantomJS 與HTTPS 頁面的鬥爭

嘗試使用PhantomJS/CasperJS 加載HTTPS 頁面時,儘管設置了“ignore-ssl-errors”,但仍可能會遇到錯誤修改用戶代理。

此問題可能源自 SSLv3 漏洞 (POODLE),促使網站所有者停用 SSLv3 支援。由於早期版本的PhantomJS 預設使用SSLv3,切換到TLSv1 甚至「任何」SSL 協定可以解決該問題:

casperjs --ssl-protocol=tlsv1 yourScript.js
casperjs --ssl-protocol=any yourScript.js

或者,更新到PhantomJS 1.9.8 或更高版本可以解決該問題,儘管它引入了一個單獨的錯誤。

要驗證SSLv3 是否是原因,請實現“resource.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”和用戶代理更改,為什麼 PhantomJS 仍無法加載 HTTPS 頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn