問題
- フラグメントが開かれたときにコードが実行されるように、フラグメントのHTMLセクションにJavascriptコードを次のように記述することができます。
<img src=x onerror="alert(document.cookie)">
- クロスサイト・スクリプティング(XSS)の脆弱性ではないか?
Environment
- Liferay DXP 7.3+
解決策
- フラグメントHTMLの中にスクリプトがあることは有効なユースケースであるため、これは意図された動作である。
- HTMLフラグメントは、ユーザが高度なロールにのみ使用を許可することを想定しているため、そのままではサニタイズを提供しません。また、ユーザはマスターページで使用を許可しないように設定することで、アクセスを制限することができます。 どのフラグメントの管理者も、フラグメントのJSフィールドにあらゆる種類のJavascriptを書くことができ、これらのスクリプトは悪意のある者によって注入されるのではなく、管理者がサイトに機能を提供するために注入する。
-
それでも、我々は提供する:
- フラグメント・テキスト値をエスケープする可能性については、こちらで説明しています:フラグメント設定テキスト値のエスケープ (関連記事も見つけました: エディターがウェブコンテンツのフィールドに実行可能コードを注入するのを防ぐことはできますか?)
- SanitizerUtilは、ユーザーが独自のサニタイズ・ルールを実装するためのものです。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン