PAC ファイル形式とは?
.pac ファイルは、Proxy Auto-Configファイルとも呼ばれ、ウェブブラウザやオペレーティングシステムがプロキシサーバーの接続設定を自動化するために使用する設定ファイルです。.pac ファイルには、ブラウザが特定のURLにアクセスする必要があるときに、どの接続モードを使用するかを指定する単一のJavaScript関数 - FindProxyForURL(url, host) - が含まれています。この関数は、DIRECT(プロキシなしで接続)、PROXY host:port(HTTPプロキシ経由でルーティング)、または SOCKS host:port を返すことができ、セミコロンで複数のディレクティブを連結してフォールバックとして機能させることも可能です。
この形式は1996年にNetscape Communicationsによって導入され、それ以来プロキシ自動設定のデファクトスタンダードであり続けています。.pac ファイルはプレーンな JavaScript であるため、isInNet()、dnsDomainIs()、shExpMatch()、dnsResolve() などの組み込みPACヘルパー関数を使用して、URLごとの複雑なルーティングロジックを構築できます。2010年頃に追加された isInNetEx() などの拡張関数により、IPv6のサポートも提供されています。
.pac ファイルはプレーンテキストであり、Windows、macOS、または Linux 上の任意のテキストエディタで作成または編集できます。企業やネットワーク環境では、Web Proxy Auto-Discovery (WPAD) プロトコルを介して自動的に配布されることが多く、その場合は wpad.dat というよく知られた名前で提供されます。これは .dat ラッパー内の同じスクリプトコンテンツです。ブラウザは、新しいホストに接続するたびにスクリプトを取得して実行します。Chrome、Firefox、Edge、Safariなどの主要なブラウザはすべて、Windows、macOS、Linux、iOS、および Android で .pac ファイルをサポートしています。
セキュリティと安全性
リスク: MEDIUMPACファイルは、プログラムのようにシステム上で実行されるものではなく、ブラウザの制限されたPACエンジン内でのみ実行されます。しかし、セキュリティ上は重要です。すべてのウェブトラフィックのルーティング先を決定するため、悪意のある、あるいは改ざんされたPACは、銀行のログイン情報を含むトラフィックを攻撃者のプロキシに密かに送信して傍受する可能性があります。予期しない «自動プロキシ設定» や、仕込まれた .pac/wpad.dat は、マルウェアの兆候として認識されています。自身のIT部門や信頼できるソースからのPACファイルのみを適用し、FindProxyForURL のロジック(読み取り可能なプレーンテキストです)を確認し、ハイジャックされる可能性がある信頼できないネットワーク上の WPAD には注意してください。
形式の詳細
概要- Atari STAD image (PackBits) - Atari ST の «STAD» ペイントプログラムによる、あまり一般的ではない圧縮ビットマップ画像形式。
- SAMS ARchive (.pac) - SAMS ARchiver パッキングユーティリティによって作成された圧縮アーカイブ。
- Tencent QQ データファイル - Tencent QQ メッセンジャーで使用される内部データ/リソースファイル。
PAC ファイルを開くプログラム
.pac を指定します。ブラウザはそれを実行するだけで、表示はしません。 技術的詳細
詳細仕様| ファイルタイプ | プレーンテキストのJavaScriptソースファイル |
| コア関数 | FindProxyForURL(url, host) - ブラウザが接続ごとに呼び出す唯一の必須エントリポイント |
| MIMEタイプ | application/x-ns-proxy-autoconfig(text/plain, application/x-javascript-config も許容されます) |
| テキストエンコーディング | ASCII / UTF-8 |
| 一般的なファイルサイズ | 5 KB未満。大規模な企業のスクリプトは数十KBに達することがあります |
| バイナリシグネチャ | なし - FindProxyForURL() 関数の宣言の存在によって識別されます |
| 戻り値の構文 | DIRECT, PROXY host:port, または SOCKS host:port。フォールバック用にセミコロンで複数のディレクティブを連結可能 |
| 組み込みヘルパー関数 | isInNet(), dnsDomainIs(), shExpMatch(), dnsResolve(), myIpAddress() および関連するPACユーティリティ |
| IPv6拡張 | isInNetEx(), isResolvableEx() および 2010年頃に追加された IPv6 アドレス照合用の Ex 接尾辞付きヘルパー |
| WPAD統合 | ネットワーク全体の自動配布のため、Web Proxy Auto-Discovery (WPAD) プロトコル下で wpad.dat として提供される |
| 配布方法 | ブラウザまたはOSが、システムまたはブラウザのプロキシ設定で構成された HTTP/HTTPS URL を介してファイルを取得する |
| 実行コンテキスト | 制限されたJavaScriptサンドボックス - DOMアクセス不可、任意のネットワーク呼び出し不可。PACヘルパー関数のみが許可される |
| サポートされているプラットフォーム | Windows, macOS, Linux, iOS, Android - プロキシ設定をサポートするすべてのOSまたはブラウザ |
| よく知られたファイル名 | proxy.pac(直接URL設定用)および wpad.dat(WPAD自動検出用) |
| リリース日 | 1996 (Netscape Navigator 2.0 proxy auto-config) |
| 最新バージョン | De-facto stable since 1996; Microsoft added IPv6 helper functions (ex versions) ~2010 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | developer.mozilla.org |
PAC の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PAC ファイルについて最初の質問をしてみましょう。
よくある質問
PACファイルとは何ですか?
FindProxyForURL() という1つの関数を持つ小さなJavaScriptファイルです。ブラウザやOSに対し、ウェブサイトごとにどのプロキシサーバーを使用するか(または直接接続するか)を指示します。PACファイルを開くにはどうすればよいですか?
PACファイルを編集するにはどうすればよいですか?
FindProxyForURL 関数を修正します。ドメインの追加、プロキシの host:port の変更、またはプロキシをバイパスすべきサイトに対して DIRECT を返すように設定します。展開する前にテストしてください。構文エラーがあるとプロキシ機能が停止します。なぜPACファイルが一部のウェブサイトをブロックしているのですか?
FindProxyForURL を調べてどのルールが一致しているかを確認するか、一時的にプロキシ設定を «プロキシなし» に切り替えて、PACが原因であることを確認してください。PACファイルは危険ですか?
.pac ファイルを見つけた場合は、侵害の可能性として扱い、削除してください。PACファイルと wpad.dat の違いは何ですか?
.pac は手動で指定するPACファイルであり、wpad.dat はクライアントが WPAD プロトコルを介して自動的に見つけられるように、特定の名前で提供される同一のコンテンツです。