PAN-OSの応答ページを多言語対応化する方法

Dec 14, 2022
2 minutes
... views

はじめに

働き方の多様化が進み、とくにグローバル企業では、英語や日本語以外の言語を使用される方が混在している環境も増えてきました。そうした環境では、ネットワーク機器からのエラーページがそれぞれの国の言葉になっていれば、情報システム部の運用負荷を減らせる可能性が高いでしょう。

しかしながら、たとえばPAN-OSやPrisma AccessのURLフィルタリング機能で提供されるブロックページはデフォルトでは英語のみです。PAN-OSでURLフィルタリングなどによるブロック画面を実際に複数言語に対応しようとしても、設定でアップロード可能なHTMLファイルは1つに制限されていますから、それぞれの言語のHTMLファイルを作成して用意するわけにはいきません。「多言語に対応した単一のHTMLファイル」を用意する必要があります。

URLフィルタリング機能が生成したブロックページ。メッセージが日本語で表示されている。画面左上には言語切替のためのドロップダウンボックスが表示され、ユーザーのIPアドレスや、URI、カテゴリなども表示されている。
図1. URLフィルタリング機能が生成したブロックページ

そこで本稿では、サンプルとして上図のようにURLフィルタリングのブロック画面をカスタマイズし、JavaScriptでブラウザの言語設定を取得して自動的にその言語でのメッセージを表示する方法を紹介します。この方法は後述するさまざまな応答ページに応用できますのでぜひ参考にしてください。

URLフィルタリングのブロックページをJavascriptで多言語化する

まず、JavaScriptで言語設定を取得します。

ここでは、変数 currentLanguage に現在の言語設定を取得しています。ブラウザによっては「ja-JP」のようにハイフンが含まれている場合もあるので、ハイフンで split して最初の要素を取得します。

次に、言語ごとの文言を用意します。今回はこのサンプルのために機械翻訳で訳したものを使っていますが、実務で使う場合は内容が正しいか確認してください。

フランス語のようにシングルクオートを含むことがある言語は、赤字の部分のようにきちんとエスケープしましょう。

言語設定された部分はHTMLの下記のパートの変数 ${title}${description} に置き換えられるようになります。

意図しない言語で表示されたときにプルダウンメニューで言語を選択できるようにするため、HTMLの select タグを使用して

のようにプルダウンメニューを作っておきます。実際には下記のようなプルダウンメニューになります。

図2. URL フィルタリングのブロックページを多言語対応し、プルダウンメニューで言語を切り替えられるようになった様子を表す図
図2. プルダウンメニューで言語を切り替えられるようになった

そしてブラウザで表示したときに現在のブラウザの言語設定を選択された状態にするために、JavaScriptで

のように現在の言語と一致したときに selected な状態にします。

選択された言語で表示させるために、ドキュメントオブジェクトモデル (Document Object Model=DOM)にテキスト文字列をセットするのを忘れないようにします。

ユーザーがプルダウンメニューで言語を変更したときには、関数 updateLanguage で内容を更新できるようにします。

おわりに

このように、簡単なHTMLとJavaScriptで1つのHTMLで表示させる内容を変えられるようにすることでファイルの管理が1つですむメリットがあるほか、対応したい言語が増えたときにも柔軟に対応できるようになります。

この例ではURLフィルタリングのブロックページを例にしましたが、PAN-OSの管理画面のDEVICE → Response Pages (図2)からもさまざまなHTMLを設定できますので、他の部分のHTMLのカスタマイズにもこの方法は応用可能です。クールなブロックページの作成にぜひチャレンジしてみてください。

間違ってもブロックページからマルウェア感染を引き起こすような細工をしてはいけませんよ。

PAN-OS 管理画面の Device タブから Response Pages を選んだところ。多数のページを多言語対応している様子がわかる
図3. PAN-OS 管理画面の Device タブから Response Pages を選んだところ。多数のページを多言語対応にした

本稿で紹介したHTMLサンプルについてのご質問があれば、弊社までお気軽にお問い合わせください。


Subscribe to the Blog!

Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more.