2012-12-10 42 views

回答

0

您應該對內容進行預先清理,以正確編碼要保留的值。例如:

content.gsub!(/\<3/, '&lt;3') 

唯一要擔心的是你的清潔可能這種雙重逃脫&amp;lt;3可以證明煩人。如果需要,至少可以扭轉。

如果不去除無效括號,就不能「消毒」。有些瀏覽器會窒息這類事情,如果處理不當,可能會導致頁面完全損壞。

3

首先,Rails的內置消毒不處理格式錯誤的標記。

我強烈建議你使用來處理任何事情的寶石消毒有可能被畸形:

https://github.com/rgrove/sanitize

但你的問題是,非HTML編碼字符實體。通過CGI.escape()

require 'cgi' 
CGI.escape('<3') # => "%3C3" 

,對於終點運行它們:

require 'cgi' 
Sanitize.clean(CGI.escape('<3')) # => "%3C3" 
相關問題