问题标签 [html-safe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 为什么在 Rails 3 中,<%= note.html_safe %> 和 <%= h note.html_safe %> 给出相同的结果?
感觉就像html_safe
在 String 类中添加了一个抽象,需要了解正在发生的事情,例如,
对于第 4 行,如果我们说,好的,我们信任该字符串——它是安全的,但为什么我们不能逃避它呢?似乎要通过 逃避它h
,字符串必须是不安全的。
所以在第 1 行,如果字符串没有被 转义h
,它将被自动转义。在第 5 行,h
不能对字符串进行两次转义——换句话说,在<
更改为之后<
,它不能再转义一次到&lt;
。
那么发生了什么?起初,我以为html_safe
只是在字符串上标记一个标志,说它是安全的。那么,为什么不h
逃避呢?似乎h
并且html_escape
实际上合作使用该标志:
1) 如果一个字符串是 html_safe,则h
不会对其进行转义
2)如果一个字符串不是html_safe,那么当这个字符串被添加到输出缓冲区时,它会被自动转义h
。
3)如果h
已经转义了一个字符串,它会被标记html_safe
,因此,再转义一次h
不会有任何效果。(如第 5 行,即使在 Rails 2.3.10 中,这种行为也是相同的,但在 Rails 2.3.5h
上实际上可以转义两次......所以在 Rails 2.3.5 中,h
是一种简单的转义方法,但有些地方沿着到 2.3.10 的行h
变得不那么简单了。但是 2.3.10 不会自动转义字符串,但是由于某种原因,该方法html_safe
已经存在于 2.3.10(出于什么目的?))
它是这样工作的吗?我认为现在,有时我们在输出中没有得到我们想要的东西,我们立即添加html_safe
到我们的变量中,这可能非常危险,因为它会以这种方式引入 XSS 攻击,因此了解它的确切工作原理可能非常重要。以上只是对其具体工作方式的猜测。它实际上可能是一种不同的机制吗?是否有任何支持它的文档?
ruby-on-rails - 在不允许所有 html 标签的情况下解析文本区域中的换行符
我有一个 textarea 字段,用户可以在其中输入内容。在页面上显示他们的条目时,rails 会\n
为每个换行符返回,这对于页面上的 html 来说似乎根本没有换行符。
据我所知,解决这个问题的标准方法是一个.gsub
命令,用 替换\n
,<br />
然后.html_safe
在最后用 a 来确保<br />
渲染。
问题是,我不想 html_safe 内容 - 仍应替换 html,但<br />
应将标签注入(非转义)内容中。
建议表示赞赏。
ruby-on-rails - Rails 3: Using HTML in i18n form helper translations
I am using the automatic form label helper for creating my form labels and having them translated via the i18n support, however, I want to have HTML in the label and I can't figure out how to make it HTML safe.
For example:
Ends up as:
But I want it to be:
Is there a way for me to specify the translation as html_safe so that it doesn't get encoded before the output?
Also, this seems like the most semantic way for the HTML to be setup but I am open to suggestions if I am approaching this entirely the wrong way.
Thanks :)
Updated:
ruby-on-rails - Ruby on Rails 表单助手在出现错误时被转义
我正在使用 Rails 2.3.9,并安装了rails_xss插件。我已经制作了所有需要 html_safe 的东西,但是当表单助手验证失败时,我刚刚注意到一个问题。当我输入错误的电子邮件地址并且验证失败时,我在浏览器中得到以下信息:
我想这与 rails_xss 有关,但我不知道如何解决。谢谢
ruby-on-rails - 消毒安全吗?
我正在使用富文本编辑器 (CKEditor),我有机会让用户创建显示给其他用户的配置文件。
当我将 CKEditor 可以控制的许多属性显示为:
我的问题是:允许解析属性“样式”是否安全?这将允许显示文本颜色、大小、背景颜色、居中、缩进等内容。我只是想确保它不会允许黑客访问我不知道的东西!
ruby-on-rails - 带有未定义字段的 html_safe
我有一个不需要的字段,即可以为零。我想在我看来使用 ffg: myfield.html_safe 。这不适用于没有 myfield 的项目。我得到一个例外,我如何让 html_safe 仅在定义该字段的情况下应用?谢谢
ruby-on-rails-3 - 如何使 rails 3 I18n 翻译自动安全?
我使用 rails 3。有没有简单的方法告诉 I18n 尊重插值中使用的字符串的“html 安全性”,并默认使所有翻译的字符串 html 安全?所以如果我有这个en.yml
:
我使用t('user_with_name', :name => @user.name)
,我让用户名 html 转义,但是<em>
并</em>
保持原样?
javascript - 如何在 Rails 中转义 javascript 生成的 html?
在我的页面的一侧,我有一个非常简单的电子邮件表单。另一方面,我预览了提议的电子邮件。例如:
当用户完成字段时,我想更新 keyup 的预览。为此,我编写了一个小 js 函数:
一切都很好,除了 rails 想要逃避我的 html 并让它看起来像垃圾:
通常,我知道这没问题:只需添加raw
or html_safe
。但我不能在这里这样做,因为标记是在 keyup (或页面加载)上动态构建的。我错过了一些简单的解决方案吗?任何解决方法的想法?我唯一的想法是在 iframe 中加载预览,这看起来很奇怪。
这真是令人沮丧。有人请帮忙!
ruby-on-rails - 凌乱的“从Rails 3控制器返回查看
在我的 Rails 3 应用程序控制器上,我有以下代码:
在 Rails 控制台中,它看起来很干净:
在我看来,@data_dump 对象被编码:
你如何清理这个烂摊子?我希望我的对象在视图中返回,就像对象在终端中一样。提前致谢!
ruby-on-rails-3 - rails 3中的微小mce显示标签
我正在尝试将 tinyMCE 的内容存储到“详细”列中。
现在,当我显示内容时,它会显示所有<p>
标签<i>
标签等。这是 rails3 中的安全功能。
但我不希望<p>
显示标签,我希望将其呈现为 HTML。
我发现的一种方法是<%= something.detail.html_safe %>
我认为的另一种方法是在模型中创建一个函数
并使用显示<%= something.detail_safe %>
无论哪种方式,我都需要<%= %>
在很多地方更改标签。有更简单的解决方案吗?还是我应该在每个地方手动更改?
谢谢你。