仅在Rails中输入文本

时间:2011-04-08 15:58:33

标签: ruby-on-rails

有时我担心黑客会在任何文本字段中包含脚本。我可以使用sanitize方法,但不能长久,因为脚本仍然存储在数据库中。

例如,在input字段中,如何让Rails只接受纯文本?并删除所有<>或其中任何危险的内容?

感谢。

3 个答案:

答案 0 :(得分:0)

您可以html_escapebefore_save回调您的模型

API链接:http://apidock.com/rails/ERB/Util/html_escape

答案 1 :(得分:0)

我使用Rails 3然后在视图中打印数据时免费获得清理效果。

如果你使用Rails 2,那么你可以像这样使用h helper来确保它被正确转义:

<%=h @model.input_data %>

答案 2 :(得分:0)

默认情况下,在Rails 3.0+中,所有输出都是html转义。

但是如果你不想用html / javascript等污染你的数据库,我会利用before_save callback

如果您正在使用&lt; Rails 3,您可以使用html_escapeh别名:

<%= h @record.field %>