0

我正在使用 Rails 3.2.x,并且查看了以下代码。

<%= order.address.address_array.join('<br />').html_safe %>

address 是 address1、address2、城市名称、州名、国家名称和邮政编码的数组 - 标准的东西。

由于我将内容标记为html_safe用户输入<script>something</script.城市名称,因此将执行该 JavaScript 代码。

什么是用换行符显示地址而不暴露安全问题的干净方法。

4

2 回答 2

2

在加入之前,您必须在地址数组的每一行上调用 html_safe。它应该看起来像这样(未经测试):

<%= order.address.address_array.map(&:html_escape).join('<br />') %>
于 2012-05-25T12:41:06.137 回答
1

尝试:

simple_format(h(address))

它会转义脚本,然后添加<br/>而不是换行符。

于 2012-05-25T13:09:59.310 回答