我正在使用引导工具提示来显示用户生成的内容。但我也使用该选项html: true
,因为我想在工具提示中启用 html 以便能够使用某些格式。
假设我有一个用户内容如下:
<script>alert('e')</script>
它被服务器端转义,放入一些div的title属性中,并像这样发送到浏览器:
<div title="<script>alert('e')</script>">Bla</div>
但是浏览器会对 html 实体进行转义,当我在 div 上调用 tooltip 函数时,它将具有以下 title 属性值:
<div title="<script>alert('e')</script>">Bla</div>
这将导致警报被触发。所以我需要的是两次转义 title 属性的内容,以便它像这样发送:
<div title="&lt;script&gt;alert('e')&lt;/script&gt;">Bla</div>
当调用 tooltip 时,它仍然看起来像这样:
<div title="<script>alert('e')</script>">Bla</div>
所以警报不会被执行。
在 Rails 中执行此操作的正确方法是什么?我在这里缺少什么吗?请不要告诉我使用html: false
工具提示模块的选项,因为我需要 html 格式。