パイプ文字で画像alt属性を削除しました:XSS ポリシーを更新します
パイプ (|)文字を含む画像alt属性は、デフォルトのXSS保護ポリシーにより、AEM Sites リッチテキストエディターに保持されません。 これを解決するには、ポリシー設定を更新して、パイプ文字を許可します。
説明 description
Adobe Experience Manager(AEM) Sitesでテキストコンポーネントを使用する場合、パイプ(|)文字を含むalt属性を持つ画像を追加すると、ダイアログを保存して再度開いた後に、属性が削除されます。 この問題は、AEMの組み込みXSS保護ポリシーでalt属性のパイプ文字が許可されないため、コンテンツ検証中にパイプ文字が削除されるために発生します。 -、&、*、$などの他の特殊文字は、この動作の影響を受けません。
環境
Adobe Experience Manager(AEM)サイト(AEM as a Cloud Serviceを含むすべてのバージョン)
症状
- テキストコンポーネントのリッチテキストエディターのSource編集モードで、パイプ文字(
alt="test | alt"など)を含むalt属性を持つ画像を追加すると、最初に値が保存されます。 - ダイアログを再度開いてSource編集モードを確認すると、
imgタグにalt属性が見つかりません。 - ダイアログが再度保存されると、
altテキストはコンテンツリポジトリから完全に失われます。
原因
AEMのデフォルトのXSS保護ポリシー設定では、alt属性のパイプ (|)文字を画像に使用できません。 その結果、リッチテキストの検証中に属性が削除されます。
解決策 resolution
問題を解決するには、次の手順に従います。
-
AEM インスタンスでXSS保護ポリシー設定ファイルを探します。 デフォルトのシステムディレクトリの下でファイルを直接変更しないでください。
-
プロジェクトのディレクトリにXSS保護ポリシー設定のカスタムオーバーレイを作成します(例:
/appsディレクトリ)。 -
カスタムオーバーレイで、
alt属性の正規表現(正規表現)を更新して、許可された文字クラスにパイプ(|)文字を含めます。 例えば、元の正規表現が([ \p{L}\p{N},'.\s-_()\?] |&[ 0-9] {2};)の場合、パイプ文字を追加して([ \p{L}\p{N},'.\s-_()\?|] |&[ 0-9] {2};)にします。 -
更新した設定を保存して、AEM環境にデプロイします。
-
変更をテストします。
- リッチテキストエディターでテキストコンポーネントを開きます。
- Source編集モードを使用して、画像を追加し、その
alt属性をパイプ文字を含む値(alt="test | alt"など)に設定します。 - ダイアログを保存して閉じてから、もう一度開き、Source編集モードをチェックして、
alt属性が保持されていることを確認します。
-
AEM as a Cloud Serviceを使用している場合は、製品の更新によってオーバーレイが上書きされる可能性があることに注意してください。 更新のたびに、必要に応じてカスタマイズを確認し、再適用します。