我正在使用Ruby on Rails 3.1.0,並且我想專注於將國際化目的使用I18n gem的安全性。在我的情況下,我該怎麼做才能關心安全?
在這個時候,我有:
# in .yml file
key_1_html: "%{var_1} is just a test"
# in view, controller and model files
I18n.t('key_1_html', :var_1 => 'Test variable')
的Test variable
是/代表來自用戶的輸入,所以我應該考慮到,作爲一個潛在的黑客攻擊。
在我的情況下,我該怎麼做才能關心安全?
BTW:在什麼情況下Ruby on Rails 3.x不處理轉義?有一些嗎?如果是這樣,什麼/什麼時候? – user12882 2012-01-12 01:19:25
那麼,Rails 3.x DOES會處理.erb模板中的任何內容,使用<%= %>輸出,除非字符串已標記爲.htmlsafe。如果您正確使用ActiveRecord,Rails還會處理防止SQL注入的問題。然而,在rails無法處理轉義的情況下,可能存在無數的情況,因爲您可以使用rails做無數的事情,您可以隨心所欲地做任何事情,包括不做任何事情感覺或沒有人做過。其中一些情況,Rails不會處理轉義。 – jrochkind 2012-01-12 05:26:02
你可以給我兩個**極端情況的例子**,其中Ruby on Rails *處理*和*不處理*轉義? – user12882 2012-01-12 14:52:58