我正在編寫一個非常簡單的CRUD應用程序,它將用戶素材存儲到數據庫中,以便其他同伴編碼人員可以將它們組織爲我們正在處理的項目。但是,在將用戶輸入保存到數據庫之前,我遇到了一個消毒用戶輸入的問題。我無法從Story模型中調用sanitize()函數去除所有html /腳本。它要求我做到以下幾點:用Ruby on Rails消毒用戶輸入
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
我想驗證用戶輸入已經被消毒,而且我不確定的兩件事情: 1)如果用戶輸入驗證發生?在保存數據之前很明顯,我認爲,在我驗證用戶輸入沒有腳本/ html標記之前,我應該在驗證之前,在驗證之前或者在其他一些非明顯區域處理這些東西? 2)爲這個模型編寫單元測試,除了比較「這是惡意代碼示例」和sanitize(example)輸出之外,我將如何驗證腳本/ html是否被刪除?
在此先感謝。
不完全是一個答案,但提醒:rails 3默認清理用戶輸入。 – kikito 2010-05-21 15:19:20