AntiSamyポートレット は、XSSタイプの攻撃を防止するためのものです。 ただし、副作用として、HTMLターゲットが使用されている場合、ポートレットはコンテンツの公開時にターゲットを削除します。
再現までの手順
- ウェブコンテンツの作成
- ターゲットが_blankのリンクを埋め込む
例:link2
- コンテンツを公開する。
- Webコンテンツ表示ポートレットでコンテンツを表示し、新しいウィンドウ/タブが開くことを確認する。
- AntiSamy を Liferay Marketplaceからダウンロードし、導入する。
- ステップ1~3を繰り返します。
- これで、コンテンツが新しいウィンドウ/タブではなく、同じウィンドウで開かれることが確認できます。
- ウェブコンテンツを編集する。 ソース をクリックすると、ターゲットが削除されたことが確認できる。
- ターゲットを再追加し、パブリッシュします。
- ウェブコンテンツの編集に戻り、 ソース をクリックすると、ターゲットが再び削除されたことがわかります。
解像度
この行動は意図的なものです。 Liferayプラットフォームは、AntiSamyのデフォルトの設定XMLである sanitizer-configuration.xml
を使用していますが、デフォルトではtarget属性がXSSリスクにさらされる可能性があるため、scruveしています。
しかし、AntiSamyの設定ファイルを設定することで、target属性が機能するようにすることができます。
動作する可能性のあるxmlファイルの設定例は、こちらに記載されています: a タグの target 属性に関する XSS フィルタの問題.
カスタマイズになりますので、元のAntiSamyポートレットのバックアップをとっておくか、可能であれば拡張しておいてください。
追加情報
AntiSamyの設定方法については、OWASPのガイドを参照してください: