我使用Bootstrap工具提示来显示用户生成的内容。但我也使用了选项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>当调用工具提示时,它看起来仍然是这样的:
<div title="<script>alert('e')</script>">Bla</div>因此警报将不会被执行。
在Rails中做这件事的正确方法是什么?我是不是漏掉了什么?请不要告诉我使用工具提示模块的选项html: false,因为我需要html格式。
发布于 2013-06-10 09:00:33
我会尝试使用HTML:
<div title="<%= escape_javascript("<script>alert(\"e\");</script>") %>">Bla</div>然而,我想知道为什么您要允许用户将脚本标记注入到工具提示中?
https://stackoverflow.com/questions/17015437
复制相似问题