Jelly スクリプトをエスケープ (セキュリティセンター 1.3 および 1.5 で更新)
glide.ui.escape_all_script プロパティを使用して、Jelly に挿入されたすべてのスクリプトを強制的にエスケープします。
このプロパティは、<j:jelly> ... </j:jelly> に含まれるすべての JS および HTML 文字列を、出力ストリームに書き込まれる前にエスケープして、いくつかの XSS 問題が発生しないようにします。glide.ui.escape_all_script が推奨値の true に設定されていない場合、Jelly に挿入されたスクリプトのエスケープは無効になります。この緩和がない場合は、プラットフォームがさまざまなスクリプトインジェクション攻撃に対して広くオープンになります。攻撃者はインスタンス上で任意の Rhino スクリプトを実行する可能性があります。
詳細情報
| 属性 | 説明 |
|---|---|
| プロパティ名 | glide.ui.escape_all_script |
| 構成タイプ | システムプロパティ (/sys_properties_list.do) |
| データタイプ | ブール |
| カテゴリ | 検証、サニタイズ、およびエンコーディング |
| 目的 | プロパティが true に設定されていない場合、開発者は XSS の問題を防ぐために、各カスタム Jelly スクリプトでいくつかの手順を実行する必要があります。これらの手順には、Web ページにレンダリングするために出力ストリームに送信される Jelly 変数の特定と、次の各タグのエスケープが含まれます。
OR
|
| 推奨値 | true |
| デフォルト値 | true |
| セキュリティリスク評価 | 7.3 |
| 機能への影響 | この修正では、パーサーレベルで Jelly エスケープが適用されます。結果のデータを用いたユーザーインタラクションに機能的な影響を与える可能性があります。 |
| セキュリティリスク | (高) アプリケーションで入力されるすべてのユーザー入力で入力検証を行う必要があります。これにより、プラットフォームに対するインジェクション攻撃を防御および保護できます。 |
| ワークアラウンド | Web ページでのレンダリング用に設計された一部のスクリプトと HTML タグが破損したように見えるため、UI が影響を受ける可能性があります。この修正では、出力エンコードされたページをブラウザーに送信してレンダリングします。 たとえば、
<u> タグが適切にエスケープされると、「my string here」ではなく「<u> my string here</u>」と表示されます。この場合、エスケープを防ぐには、NOESC プリフィックスを Jelly 式に追加して JS エスケープを防止します。例:
警告: これらのタグを使用する際には注意してください。ここにユーザー入力が表示されている場合、セキュリティの脆弱性が発生する可能性があります。 |
| 参照 | Jelly のタグ |
システムプロパティの追加または作成の詳細については、「Add a system property」を参照してください。