有时我担心黑客会在任何文本字段中包含脚本。我可以使用sanitize
方法,但不能长久,因为脚本仍然存储在数据库中。
例如,在input
字段中,如何让Rails只接受纯文本?并删除所有<
或>
或其中任何危险的内容?
感谢。
答案 0 :(得分:0)
您可以html_escape
在before_save
回调您的模型
答案 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_escape
或h
别名:
<%= h @record.field %>