Jelly JS 補間保護を有効にする

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:2分
  • glide.ui.jelly.js_interpolation.protect プロパティを使用して、Jelly ページで実行しようとしているすべての JavaScript が Jelly 補間を使用したインジェクションから確実に保護されるようにします。

    プロパティを true に設定すると、アプリケーションは (ネストされた) Jelly スクリプトツリーを経由します。潜在的に危険な Jelly 式は、次を実行するフィルターでラップされます。
    • 結果をエスケープして安全にします。または、
    • 安全性を保証できない場合は SecurityException を生成します。これは、評価される予定の式がセキュリティ上の問題を示している可能性があるためです。
    警告:
    これはセーフハーバープロパティです。つまり、いったん変更したら変えることはできません。元に戻すことはできません。

    詳細情報

    属性 説明
    プロパティ名 glide.ui.jelly.js_interpolation.protect
    構成タイプ システムプロパティ (/sys_properties_list.do)
    カテゴリ 検証、サニタイズ、およびエンコーディング
    目的 Jelly インジェクションを使用すると発生する可能性がある、悪意のあるコードの実行攻撃を軽減すること
    推奨値 true
    デフォルト値 false
    セキュリティリスク評価 9
    機能への影響 このプロパティは、式が引用符で囲まれているかどうかを推測します。正当な式に誤って引用符を付ける可能性があります。その場合、手動で式に安全とマークする必要がある場合があります。
    セキュリティリスク (中) JEXL インジェクションは、Now Platform に固有の入力インジェクションの形式です。これにより、クロスサイト要求の偽造とコード実行の両方が発生する可能性があります。保護を完全にオフにすると、多くの P1 セキュリティ脆弱性がオープンになるおそれがあります。
    ワークアラウンド

    手動で式に安全とマークするには、SAFE というプリフィックスを Jelly 式に追加します。

    ${SAFE:sysparm_input};

    すべての式に機械的に SAFE を追加するという方法は、セキュリティの脆弱性をオープンにするおそれがあるため、問題へのアプローチとしては不適切です。
    • 式に SAFE を追加するのは、式にクライアントからの入力が含まれていないことが保証できる場合に限ってください。
    • 含まれている場合、悪意のあるクライアントによって特権 JavaScript が評価される可能性があります。
    参照 Jelly のタグ

    高セキュリティ設定

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