ユーザー生成コンテンツの表示に Bootstrap ツールチップを使用しています。html: true
ただし、ツールチップで html を有効にして書式設定を使用できるようにするため、このオプションも使用します。
次のようなユーザーコンテンツがあるとしましょう:
<script>alert('e')</script>
サーバー側でエスケープされ、一部の div の title 属性に入れられ、次のようにブラウザーに送信されます。
<div title="<script>alert('e')</script>">Bla</div>
しかし、ブラウザーは html エンティティのエスケープを解除し、div でツールチップ関数を呼び出すと、次の title 属性値が含まれます。
<div title="<script>alert('e')</script>">Bla</div>
これにより、アラートが発生します。したがって、次のように送信されるように、タイトル属性の内容を 2 回エスケープする必要があります。
<div title="&lt;script&gt;alert('e')&lt;/script&gt;">Bla</div>
ツールチップが呼び出されると、次のようになります。
<div title="<script>alert('e')</script>">Bla</div>
したがって、アラートは実行されません。
Railsでこれを行う適切な方法は何ですか? 私がここに欠けているものはありますか?html: false
HTML フォーマットが必要なため、ツールチップ モジュールのオプションを使用するように言わないでください。