method
    
    process_attributes_for
 
  
  
    
      Register or 
      log in
      to add new notes.
  
  
  
  
      
     kieran -  
    July 28, 2008 - (<= v2.1.0)
 kieran -  
    July 28, 2008 - (<= v2.1.0)
    
  
  
  
       
  
  
  
           kieran -  
    July 28, 2008 - (<= v2.1.0)
 kieran -  
    July 28, 2008 - (<= v2.1.0)
    
  
    
    0 thanks
     
  
  
  Bug that causes escape buildup
There is a bug in this meethod that causes an escape build up when you have links or image urls for example with ampersands in them. Over time, it goes something like this:
& -> & -> &amp; -> &amp;amp; -> &amp;amp;amp; -> etc
This breaks the url so links and images are not clickable/viewable. To fix, simply unescape before you reescape. Works like a charm. We have the following in an initializer, “html_sanitizer_patch.rb”, that fixes this behaviour.
module HTML class WhiteListSanitizer < Sanitizer protected def process_attributes_for(node, options) return unless node.attributes node.attributes.keys.each do |attr_name| value = node.attributes[attr_name].to_s if !options[:attributes].include?(attr_name) || contains_bad_protocols?(attr_name, value) node.attributes.delete(attr_name) else node.attributes[attr_name] = attr_name == 'style' ? sanitize_css(value) : CGI::escapeHTML(CGI::unescapeHTML(value)) end end end end end

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
    
    
 
   = private
 = private 
    