【问题标题】:Append safe HTML to unsafe HTML in Rails 3.2在 Rails 3.2 中将安全的 HTML 附加到不安全的 HTML
【发布时间】:2013-03-13 12:06:39
【问题描述】:

假设我有,

<%= @order.shipping.address1 + '<br />' unless @order.shipping.address1 %>
<%= @order.shipping.address2 + '<br />' unless @order.shipping.address2 %>

如何返回带有默认标签剥离的变量,并将“
”打印为 html_safe?

大概,包装在 中会引发安全问题,因为变量没有被剥离 html。

【问题讨论】:

    标签: html ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2


    【解决方案1】:

    您不想使用 raw 或 html_safe 之类的东西,因为正如您所说的那样,它会在地址字段中打开漏洞。

    你可以像这样重写它:

    <% unless @order.shipping.address1 %>
      <%= @order.shipping.address1 %> 
      <br />
    <% end %>
    <% unless @order.shipping.address2 %>
      <%= @order.shipping.address2 %>
      <br />
    <% end %>
    

    但我会考虑使用 html/css 而不是添加断线。用 div 包围它实际上会使下一个元素出现在下一行,因为 div 是 block element 并因此创建一个换行。

    查看:

    <% unless @order.shipping.address1 %>
      <div>
        <%= @order.shipping.address1 %> 
      </div>
    <% end %>
    <% unless @order.shipping.address2 %>
      <div>
        <%= @order.shipping.address2 %>
      </div>
    <% end %>
    

    如果您需要进一步的样式,您可以添加一个类并使用 css 来设置宽度、高度和其他内容。

    【讨论】:

      猜你喜欢
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2019-07-21
      • 2017-08-27
      相关资源
      最近更新 更多