HTMLPurifier/AttrTransform/SafeParam.php Quellcode

SafeParam.php
gehe zur Dokumentation dieser Datei
1 <?php
2 
16 {
20  public $name = "SafeParam";
21 
25  private $uri;
26 
27  public function __construct()
28  {
29  $this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded
30  $this->wmode = new HTMLPurifier_AttrDef_Enum(array('window', 'opaque', 'transparent'));
31  }
32 
39  public function transform($attr, $config, $context)
40  {
41  // If we add support for other objects, we'll need to alter the
42  // transforms.
43  switch ($attr['name']) {
44  // application/x-shockwave-flash
45  // Keep this synchronized with Injector/SafeObject.php
46  case 'allowScriptAccess':
47  $attr['value'] = 'never';
48  break;
49  case 'allowNetworking':
50  $attr['value'] = 'internal';
51  break;
52  case 'allowFullScreen':
53  if ($config->get('HTML.FlashAllowFullScreen')) {
54  $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false';
55  } else {
56  $attr['value'] = 'false';
57  }
58  break;
59  case 'wmode':
60  $attr['value'] = $this->wmode->validate($attr['value'], $config, $context);
61  break;
62  case 'movie':
63  case 'src':
64  $attr['name'] = "movie";
65  $attr['value'] = $this->uri->validate($attr['value'], $config, $context);
66  break;
67  case 'flashvars':
68  // we're going to allow arbitrary inputs to the SWF, on
69  // the reasoning that it could only hack the SWF, not us.
70  break;
71  // add other cases to support other param name/value pairs
72  default:
73  $attr['name'] = $attr['value'] = null;
74  }
75  return $attr;
76  }
77 }
78 
79 // vim: et sw=4 sts=4




Korrekturen, Hinweise und Ergänzungen

Bitte scheuen Sie sich nicht und melden Sie, was auf dieser Seite sachlich falsch oder irreführend ist, was ergänzt werden sollte, was fehlt usw. Dazu bitte oben aus dem Menü Seite den Eintrag Support Forum wählen. Es ist eine kostenlose Anmeldung erforderlich, um Anmerkungen zu posten. Unpassende Postings, Spam usw. werden kommentarlos entfernt.