Jelly のエスケープ (インスタンスセキュリティ強化)

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:2分
  • glide.ui.escape_all_script プロパティを使用して、Jelly に挿入されたすべてのスクリプトを強制的にエスケープします。

    これは、<j:jelly> ... </j:jelly> に含まれるすべての JS および HTML 文字列を、出力ストリームに書き込まれる前にエスケープして、いくつかの XSS 問題が発生しないようにします。

    詳細情報

    属性 説明
    プロパティ名 glide.ui.escape_all_script
    構成タイプ システムプロパティ (/sys_properties_list.do)
    インスタンスセキュリティセンターでの構成 あり
    目的

    プロパティが true に設定されていない場合、開発者は XSS の問題を防ぐために、各カスタム Jelly スクリプトでいくつかの手順を実行する必要があります。これらの手順には、Web ページにレンダリングするために出力ストリームに送信される Jelly 変数の特定と、次の各タグのエスケープが含まれます。

    $â {JS:expression}

    $â {HTML:expression}

    OR

    $â {JS,HTML:expression}

    推奨値 true
    機能への影響度 (中) この修正では、パーサーレベルで Jelly エスケープが適用されます。結果のデータを用いたユーザーインタラクションに機能的な影響を与える可能性があります。
    セキュリティリスク (高) アプリケーションで入力されるすべてのユーザー入力で入力検証を行う必要があります。これにより、プラットフォームに対するインジェクション攻撃を防御および保護できます。
    ワークアラウンド

    Web ページでのレンダリング用に設計された一部のスクリプトと HTML タグが破損したように見えるため、UI が影響を受ける可能性があります。この修正では、出力エンコードされたページをブラウザーに送信してレンダリングします。

    たとえば、<u> タグが適切にエスケープされると、「my string here」ではなく「<u> my string here</u>」と表示されます。この場合、エスケープを防ぐには、NOESC プリフィックスを Jelly 式に追加して JS エスケープを防止します。例:
    • 変更前:($[jvar_context_menus]);
    • 変更後:($[NOESC:jvar_context_menus]);
    • 変更前:$[jvar_ui_policy_scripts]
    • 変更後:$[NOESC:jvar_ui_policy_scripts]
    参照

    高セキュリティ設定

    Jelly のタグ

    システムプロパティの追加または作成の詳細については、「Add a system property」を参照してください。