4 * A "safe" script module. No inline JS is allowed, and pointed to JS
5 * files must match whitelist.
7 class HTMLPurifier_HTMLModule_SafeScripting
extends HTMLPurifier_HTMLModule
12 public $name = 'SafeScripting';
15 * @param HTMLPurifier_Config $config
17 public function setup($config)
19 // These definitions are not intrinsically safe: the attribute transforms
20 // are a vital part of ensuring safety.
22 $allowed = $config->get('HTML.SafeScripting');
23 $script = $this->addElement(
29 // While technically not required by the spec, we're forcing
31 'type' => 'Enum#text/javascript',
32 'src*' => new HTMLPurifier_AttrDef_Enum(array_keys($allowed))
35 $script->attr_transform_pre
[] =
36 $script->attr_transform_post
[] = new HTMLPurifier_AttrTransform_ScriptRequired();