[英]Rails form text_field escaping html
在我的Rails表單上進行試驗,發現將<scrip>alert("hello")</script>
插入text_field會給我兩個不同的結果。
當我在顯示頁面中使用該值時,該值會自動轉義。
當我以新的形式使用該值(例如,允許用戶編輯)時,不會轉義該值,並且會彈出警報彈出窗口。
經過大量研究,我發現text_area的轉義布爾值可以防止這種情況發生,但是text_field卻不能。 google上出現的大多數內容都是關於在erb模板中轉義,當使用表單時,這似乎無效。 有一些提示應該將數據清理到db中,但是關於最佳方法的指南很少-除了使用xssterminate這樣的舊解決方案外,這似乎可以追溯到Rails2。甚至RoR安全性該指南着重於清理erb輸出,而不是清理輸入。
兩個問題。
絲瓜絡-activerecord寶石( https://github.com/flavorjones/loofah-activerecord )看起來像是最好的選擇,它可以清理進入數據庫的數據。 在模型上使用xss_foliate會默認剝離所有列的標簽。
例如
class User < ActiveRecord::Base
xss_foliate
...
end
我還沒有找到第二點的解決方案,但是如果有一個解決方案,我將非常想知道!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.