HTMLPurifier defangs arbitrary submitted HTML. We're using it in the OStatus plugin, but it may be valuable for other parts of the codebase (I think OEmbed might benefit, for example).
		
			
				
	
	
		
			24 lines
		
	
	
		
			524 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			524 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Pre-transform that changes proprietary background attribute to CSS.
 | 
						|
 */
 | 
						|
class HTMLPurifier_AttrTransform_Background extends HTMLPurifier_AttrTransform {
 | 
						|
 | 
						|
    public function transform($attr, $config, $context) {
 | 
						|
 | 
						|
        if (!isset($attr['background'])) return $attr;
 | 
						|
 | 
						|
        $background = $this->confiscateAttr($attr, 'background');
 | 
						|
        // some validation should happen here
 | 
						|
 | 
						|
        $this->prependCSS($attr, "background-image:url($background);");
 | 
						|
 | 
						|
        return $attr;
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
// vim: et sw=4 sts=4
 |