Ruby on Rails:如何最好地转义模型中的字符串?
我希望我的应用程序在输入时而不是在显示时清理 html,以便对保存到数据库中的字段进行清理。
我一直在使用 strip_tags
进行此操作,效果非常好。但是,这有一个缺点,即意味着用户无法输入用 <
和 >
括起来的任何内容。
我如何告诉模型中的 Rails 在将标签保存到数据库之前安全地转义标签?在视图中使用它们之前,我希望不必再次对已清理的字段调用 h
。
I want my application to sanitize html on input rather than on display, so that the fields saved into the database are sanitized.
I've been doing this with strip_tags
, and it was working great. However, this has the downside that it means the user can't input anything that's bracketed with <
and >
.
How can I tell Rails in the model to securely escape tags before saving them to the database? I'd like to not have to call h
on the sanitized fields again before using them in the views.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在
before_save
过滤器中调用h
方法。You could call the
h
method in abefore_save
filter.一种选择是使用插件 xss_terminate:http://code.google.com/p/xssterminate/
默认情况下,它会从用户输入中删除所有 HTML 标签。
One option is to use the plugin xss_terminate: http://code.google.com/p/xssterminate/
By default it strips all HTML tags from user input.