JavaScript をエスケープする
glide.html.escape_script プロパティを使用して、リストビュー中に HTML フィールドの JavaScript (<script></script>) タグからのエスケープを適用します。
HTML は、辞書フィールドに割り当てることができるタイプの一種です。HTML フィールドを任意のフィールドタイプに割り当てると、ユーザーは HTML コード (<p>、<a href>、 <b>、<font>、<img> など) を使用してコンテンツをフォーマットできるようになります。glide.html.escape_script を false に設定すると、テーブルまたはレコードリストを表示しているときにリストビューでその列を選択すると、(<script></script>) タグが表示される場合があります。
悪意のある攻撃者は、(<script></script>) タグ内に JavaScript コードを埋め込んで挿入できます。攻撃者は、ユーザーがテーブルレコードを開いたときに実行される可能性のある高度な JS ベクトルを挿入して利用することができます。
警告:
これはセーフハーバープロパティです。つまり、いったん変更したら変えることはできません。元に戻すことはできません。
詳細情報
| 属性 | 説明 |
|---|---|
| プロパティ名 | glide.html.escape_script |
| 構成タイプ | システムプロパティ (/sys_properties_list.do) |
| カテゴリ | 検証、サニタイズ、およびエンコーディング |
| 目的 | アプリケーションに対するクロスサイトスクリプティング攻撃を防ぐこと |
| 推奨値 | true |
| デフォルト値 | true |
| セキュリティリスク評価 | 8.8 |
| 機能への影響度 | (中) この修正では、UI で強制的に JavaScript エスケープが行われ、エンコードされた結果がユーザーに対してレンダリングされます。これは、結果のデータを用いたインスタンスのユーザーインタラクションに基づいて、機能に影響を与える可能性があります。 |
| セキュリティリスク | (高) クロスサイトスクリプティング攻撃から防御するために、アプリケーションで入力検証を行う必要があります。これらの攻撃により、ログインしているブラウザーのコンテキストで、ユーザーセッションで外部スクリプトが実行される可能性があります。攻撃者はこれを使用してセッション情報と機密データを盗むことができます。 |
| 参照 |
システムプロパティの追加または作成の詳細については、「Add a system property」を参照してください。