首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中两次转义html

问在Rails中两次转义html
EN

Stack Overflow用户
提问于 2013-06-10 08:08:36
回答 1查看 276关注 0票数 1

我使用Bootstrap工具提示来显示用户生成的内容。但我也使用了选项html: true,因为我希望在工具提示中启用html,以便能够使用某些格式。

假设我有一个用户内容,如下:

代码语言:javascript
复制
<script>alert('e')</script>

它在服务器端转义,放入某个div的title属性中,然后发送到浏览器,如下所示:

代码语言:javascript
复制
<div title="&lt;script&gt;alert('e')&lt;/script&gt;">Bla</div>

但是浏览器将不转义html实体,并且当我在div上调用tooltip函数时,它将具有以下title属性值:

代码语言:javascript
复制
<div title="<script>alert('e')</script>">Bla</div>

这将导致警报被触发。因此,我需要的是对title属性的内容进行两次转义,以便像这样发送:

代码语言:javascript
复制
<div title="&amp;lt;script&amp;gt;alert('e')&amp;lt;/script&amp;gt;">Bla</div>

当调用工具提示时,它看起来仍然是这样的:

代码语言:javascript
复制
<div title="&lt;script&gt;alert('e')&lt;/script&gt;">Bla</div>

因此警报将不会被执行。

在Rails中做这件事的正确方法是什么?我是不是漏掉了什么?请不要告诉我使用工具提示模块的选项html: false,因为我需要html格式。

EN

回答 1

Stack Overflow用户

发布于 2013-06-10 09:00:33

我会尝试使用HTML:

代码语言:javascript
复制
<div title="<%= escape_javascript("<script>alert(\"e\");</script>") %>">Bla</div>

然而,我想知道为什么您要允许用户将脚本标记注入到工具提示中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17015437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档