帶有使用者名稱和密碼的 Google Chrome 代理設定

帶有使用者名稱和密碼的 Google Chrome 代理設定

我可以在代理程式後面的 Linux Mint 下使用 Google Chrome。但是當瀏覽器啟動時,每次我都必須輸入使用者名稱和密碼進行身份驗證。

有什麼方法可以在啟動瀏覽器時設定使用者名稱密碼嗎?

我已經嘗試過:

chrome --proxy-server="username:password@yourIP:PORT"

(例如,)chrome --proxy-server="username:[email protected]:8080"

這不起作用。

答案1

筆記下列:

代理自動設定檔不支援硬編碼的使用者名稱和密碼。這背後也有很好的理由,因為提供對硬編碼憑證的支援會帶來重大的安全漏洞,因為任何人都可以輕鬆查看存取代理程式所需的憑證。

而是將代理配置為透明代理,這樣您就不需要使用者名稱和密碼。您在評論之一中提到代理伺服器位於您的 LAN 之外,這就是您需要身份驗證的原因。但是,大多數代理程式支援基於來源 IP 的規則,在這種情況下,只需允許來自公司網路的請求就很簡單了。

原始代理自動設定規格最初由 Netscape 於 1996 年起草。存檔副本。該規範沒有太大變化,仍然與原來的基本相同。您將看到該規範非常簡單,並且沒有提供硬編碼憑證。

要解決這個問題 - 你可以使用這個工具:

https://github.com/sjitech/proxy-login-automator

該工具可以建立本地代理並自動將使用者/密碼注入真實代理伺服器。支援PAC腳本。

答案2

如果您處於無頭模式,則可以使用 devtools 協定提供代理程式的使用者名稱/密碼。

您可以透過在請求時啟用setRequestInterception並執行操作continueInterceptedRequest來實現此目的。authChallengeResponse

我是一名 PHP 人員,我使用https://github.com/chrome-php/chrome/,但我希望我的例子能給你一些想法:


// enable request interception (important!!!)
// it allows the browser to inform us that we need to complete a username/password authorization.
$page->getSession()->sendMessageSync(new Message('Network.setRequestInterception', ['patterns' => [['urlPattern' => '*']]]));

// this method allows you to approve or block request (we are only approving here)
$page->getSession()->on('method:Network.requestIntercepted', function (array $params): void {

    // the browser is letting us know that we need to provide proxy (or 401) credentials (normally, happens only once)
    if (isset($params["authChallenge"])) {
        // approving request and sending username/password
        $page->getSession()->sendMessageSync(
            new Message('Network.continueInterceptedRequest', ['interceptionId' => $params["interceptionId"], 'authChallengeResponse' => ['response' => 'ProvideCredentials', 'username' => "proxy_username", 'password' => "proxy_password"]])
        );
    } else {
        // simply approving request
        $page->getSession()->sendMessageSync(
            new Message('Network.continueInterceptedRequest', ['interceptionId' => $params["interceptionId"]])
        );

    }

});

答案3

我嘗試了各種 CLI 方法,但無法使其與身份驗證一起使用。但是,那Switchy Omega 擴充到目前為止工作正常。

相關內容