问题标签 [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.

0 投票
2 回答
10428 浏览

ruby-on-rails - 为什么在 Rails 3 中,<%= note.html_safe %> 和 <%= h note.html_safe %> 给出相同的结果?

感觉就像html_safe在 String 类中添加了一个抽象,需要了解正在发生的事情,例如,

对于第 4 行,如果我们说,好的,我们信任该字符串——它是安全的,但为什么我们不能逃避它呢?似乎要通过 逃避它h,字符串必须是不安全的。

所以在第 1 行,如果字符串没有被 转义h,它将被自动转义。在第 5 行,h不能对字符串进行两次转义——换句话说,在<更改为之后&lt;,它不能再转义一次到&amp;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 攻击,因此了解它的确切工作原理可能非常重要。以上只是对其具体工作方式的猜测。它实际上可能是一种不同的机制吗?是否有任何支持它的文档?

0 投票
4 回答
7833 浏览

ruby-on-rails - 在不允许所有 html 标签的情况下解析文本区域中的换行符

我有一个 textarea 字段,用户可以在其中输入内容。在页面上显示他们的条目时,rails 会\n为每个换行符返回,这对于页面上的 html 来说似乎根本没有换行符。

据我所知,解决这个问题的标准方法是一个.gsub命令,用 替换\n<br />然后.html_safe在最后用 a 来确保<br />渲染。

问题是,我不想 html_safe 内容 - 仍应替换 html,但<br />应将标签注入(非转义)内容中。

建议表示赞赏。

0 投票
4 回答
13272 浏览

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:

0 投票
1 回答
776 浏览

ruby-on-rails - Ruby on Rails 表单助手在出现错误时被转义

我正在使用 Rails 2.3.9,并安装了rails_xss插件。我已经制作了所有需要 html_safe 的东西,但是当表单助手验证失败时,我刚刚注意到一个问题。当我输入错误的电子邮件地址并且验证失败时,我在浏览器中得到以下信息:

我想这与 rails_xss 有关,但我不知道如何解决。谢谢

0 投票
1 回答
1178 浏览

ruby-on-rails - 消毒安全吗

我正在使用富文本编辑器 (CKEditor),我有机会让用户创建显示给其他用户的配置文件。

当我将 CKEditor 可以控制的许多属性显示为:

我的问题是:允许解析属性“样式”是否安全?这将允许显示文本颜色、大小、背景颜色、居中、缩进等内容。我只是想确保它不会允许黑客访问我不知道的东西!

0 投票
3 回答
5143 浏览

ruby-on-rails - 带有未定义字段的 html_safe

我有一个不需要的字段,即可以为零。我想在我看来使用 ffg: myfield.html_safe 。这不适用于没有 myfield 的项目。我得到一个例外,我如何让 html_safe 仅在定义该字段的情况下应用?谢谢

0 投票
3 回答
2607 浏览

ruby-on-rails-3 - 如何使 rails 3 I18n 翻译自动安全?

我使用 rails 3。有没有简单的方法告诉 I18n 尊重插值中使用的字符串的“html 安全性”,并默认使所有翻译的字符串 html 安全?所以如果我有这个en.yml

我使用t('user_with_name', :name => @user.name),我让用户名 html 转义,但是<em></em>保持原样?

0 投票
1 回答
740 浏览

javascript - 如何在 Rails 中转义 javascript 生成的 html?

在我的页面的一侧,我有一个非常简单的电子邮件表单。另一方面,我预览了提议的电子邮件。例如:

在此处输入图像描述

当用户完成字段时,我想更新 keyup 的预览。为此,我编写了一个小 js 函数:

一切都很好,除了 rails 想要逃避我的 html 并让它看起来像垃圾:

在此处输入图像描述

通常,我知道这没问题:只需添加rawor html_safe。但我不能在这里这样做,因为标记是在 keyup (或页面加载)上动态构建的。我错过了一些简单的解决方案吗?任何解决方法的想法?我唯一的想法是在 iframe 中加载预览,这看起来很奇怪。

这真是令人沮丧。有人请帮忙!

0 投票
1 回答
1987 浏览

ruby-on-rails - 凌乱的“从Rails 3控制器返回查看

在我的 Rails 3 应用程序控制器上,我有以下代码:

在 Rails 控制台中,它看起来很干净:

在我看来,@data_dump 对象被编码:

你如何清理这个烂摊子?我希望我的对象在视图中返回,就像对象在终端中一样。提前致谢!

0 投票
2 回答
936 浏览

ruby-on-rails-3 - rails 3中的微小mce显示标签

我正在尝试将 tinyMCE 的内容存储到“详细”列中。

现在,当我显示内容时,它会显示所有<p>标签<i>标签等。这是 rails3 中的安全功能。

但我不希望<p>显示标签,我希望将其呈现为 HTML。

我发现的一种方法是<%= something.detail.html_safe %>

我认为的另一种方法是在模型中创建一个函数

并使用显示<%= something.detail_safe %>

无论哪种方式,我都需要<%= %>在很多地方更改标签。有更简单的解决方案吗?还是我应该在每个地方手动更改?

谢谢你。