ruby-on-rails – 使用Ruby on Rails清理用户输入
发布时间:2020-12-17 03:09:15 所属栏目:百科 来源:网络整理
导读:我正在编写一个非常简单的CRUD应用程序,该应用程序将用户故事存储到数据库中,以便其他编码人员可以为我们正在处理的项目组织它们.但是,在将用户输入保存到数据库之前,我遇到了清理用户输入的问题.我无法从Story模型中调用sanitize()函数来去除所有的html /脚
我正在编写一个非常简单的CRUD应用程序,该应用程序将用户故事存储到数据库中,以便其他编码人员可以为我们正在处理的项目组织它们.但是,在将用户输入保存到数据库之前,我遇到了清理用户输入的问题.我无法从Story模型中调用sanitize()函数来去除所有的html /脚本.它要求我做以下事情:
def sanitize_inputs self.name = ActionController::Base.helpers.sanitize(self.name) unless self.name.nil? self.story = ActionController::Base.helpers.sanitize(self.story) unless self.story.nil? end 我想验证用户输入是否已经过消毒,我不确定两件事: 提前致谢. 解决方法
有两种方法可以消除XSS漏洞:
A.在将内容存储到数据库之前过滤内容(您要做的是什么).这里有2个插件可以帮到你. xss_terminate acts_as_sanitiled B.在显示内容时过滤内容(Rails 3默认情况下会这样做).您可以使用h功能或使用rails_xss. 和你的第二个问题一样,我认为你的单元测试应该只测试是否调用了消毒方法,而不是功能本身(所以在一个基本的例子上做一个简单的断言就可以了).默认情况下,清理功能/插件已经过很好的测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |