AXD ファイル形式とは?
拡張子が .axd のファイルは、Microsoft IIS上で動作するASP.NET Web Formsアプリケーションによって使用されます。ほとんどのウェブファイル形式とは異なり、.axd はディスク上に保存されたドキュメントではなく、web.config 内で組み込みの IHttpHandler クラスにマッピングされた仮想URLエンドポイントであり、オンザフライでレスポンスを生成します。
.axd エンドポイントはクライアントマシンに命令を保存しません。代わりに、ハンドラーがコンパイル済みの .dll アセンブリから、埋め込まれたアセンブリリソース(スクリプト、画像、その他のアセット)を要求元のブラウザに直接ストリーミングします。
デフォルトでは、.axd リソースエンドポイントは WebResource.axd または ScriptResource.axd という名前になります。これらは非常に似ていますが、それぞれ異なる役割を担っています。WebResource.axd は画像やバイナリアセットなどの一般的な埋め込みリソースを処理し、ScriptResource.axd は通常ASP.NET AJAXフレームワークで使用され、スクリプトの結合や圧縮などの追加機能を提供します。3つ目の組み込みエンドポイントである Trace.axd は、デバッグ用にリクエストごとのトレース診断を表示します。
.axd を通じて登録されたハンドラーは、JavaScriptファイル、CSSスタイルシート、画像、およびHTMLトレース出力を提供できます。また、.axd エンドポイントは、サーバー側のアセンブリに埋め込まれた画像、テキスト、またはスクリプトファイルをクライアント側で取得するためによく使用されます。WebResource.axd で使用される d= クエリ文字列パラメータは、アプリケーションの machineKey でHMAC署名されており、不正なリソース列挙からエンドポイントを保護しています。.axd はクラシックなASP.NET Web Formsの機能であり、静的ウェブアセットやバンドルミドルウェアに置き換えられたASP.NET Coreでは使用されません。
セキュリティと安全性
リスク: LOW.axd 自体はファイルではなく、「持っている」こと自体は危険ではありません。実用上の注意点は2つあります。(1) サーバー側では、本番環境で Trace.axd を有効にしたままにすると、アクセスした全員にリクエストデータ(ヘッダー、セッション、クエリ値)が漏洩する可能性があるため、本番の web.config では無効にする必要があります。(2) WebResource.axd は歴史的にASP.NETのセキュリティ勧告(特に暗号化された d= トークンを悪用した2010年のパディングオラクル脆弱性 MS10-070)に関連しています。 .NET Framework には常にパッチを適用してください。一般ユーザーにとって、保存された .axd ファイルは単なるスクリプトや画像のテキストであり、エディタで検査しても安全です。
形式の詳細
概要AXD ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマットタイプ | 仮想サーバー側HTTPハンドラーエンドポイント。ディスク上にファイルは存在せず、`.axd` URLは登録されたIHttpHandlerクラスによって実行時に解決されます |
| ハンドラーインターフェース | `System.Web.IHttpHandler` または `IHttpAsyncHandler` を実装。 `ProcessRequest(HttpContext)` メソッドがHTTP出力ストリームに直接レスポンスを書き込みます |
| ハンドラー登録 | `web.config` の `<httpHandlers>` (IIS 6 / .NET 2.0) または `<handlers>` (IIS 7以降の統合パイプライン) で宣言されます |
| 開発者 / プラットフォーム | Microsoft。 .NET Framework上のASP.NET Web Formsの一部(2002年導入)。ASP.NET Coreには存在しません |
| 一般的なエンドポイント名 | `WebResource.axd`(一般的な埋め込みリソース)、`ScriptResource.axd`(ASP.NET AJAXスクリプト)、`Trace.axd`(リクエスト診断) |
| MIMEタイプ | ハンドラーのレスポンスにより異なります。 `application/javascript`、`text/css`、`image/png`、`text/html` など。リクエストごとに動的に設定されます |
| リソースソース | ビルドアクションが `EmbeddedResource` として `.dll` アセンブリにコンパイルされた埋め込みリソース。リクエスト時に `Assembly.GetManifestResourceStream` を介して取得されます |
| セキュリティメカニズム | `WebResource.axd` の `d=` クエリパラメータは、アプリケーションの `machineKey` を使用してHMAC署名されます。無効な署名はHTTP 400を返し、リソースの列挙を防止します |
| キャッシュ動作 | レスポンスには `Cache-Control: public` と遠い将来の `Expires` ヘッダーが含まれます。IISの出力キャッシュは、パフォーマンス向上のために繰り返されるレスポンスをメモリに保存します |
| 圧縮 | IISは転送中の `.axd` レスポンスにHTTPレベルの gzip または Brotli 圧縮を適用できます。 `ScriptResource.axd` はサーバー側のスクリプト結合もサポートしています |
| クライアントアクセス方法 | 暗号化およびHMAC署名されたクエリ文字列(例:`?d=<token>&t=<timestamp>`)を伴うHTTP GET。ブラウザは通常のレスポンスとしてリソースを受け取ります |
| `Trace.axd` 出力 | リクエストごとのASP.NETトレースデータをHTMLとしてレンダリングします。タイミングの内訳、HTTPヘッダー、クッキー、フォーム値、サーバー変数、コントロールツリーなどが含まれます |
| 後継技術 | ASP.NET Coreの静的ウェブアセットパイプラインおよびバンドル/縮小ミドルウェア。ASP.NET Coreには `.axd` ハンドラーは存在しません |
| リリース日 | 2002 (ASP.NET 1.0, .NET Framework) |
| 最新バージョン | ASP.NET Web Forms / Framework 4.8 (classic; not used in ASP.NET Core) |
| 仕様書 | learn.microsoft.com |
AXD の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。AXD ファイルについて最初の質問をしてみましょう。