【发布时间】:2019-08-23 18:26:52
【问题描述】:
我有一个名为r 的对象,由于多对多关系,它具有属性subjects。我正在尝试使用link_to helper 将r 的subjects 打印为链接,并使用join 将它们连接在一起。这是我的代码:
<%= r.subjects.map { |s| link_to s.name, subject_path(s) } .join "," %>
但是,我将 HTML anchor 元素作为字符串而不是 HTML。我想获得实际的 HTML 锚元素。
【问题讨论】:
-
您需要在每个字符串上调用
html_safe以使其“启用HTML”,但请注意:查看您的代码,如果主题名称包含HTML 代码,它将被视为HTML,所以这里有可能注入! -
@MrYoshiji 主题名称只是一个字符串。我这里会有潜在的注射问题吗?
-
是的,如果主题的名称是
/><b>This is bold</b>或类似的名称,那么它将“解释”其中的 HTML -
@MrYoshiji 如何解决这种注入威胁?
标签: html ruby-on-rails ruby