12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- // must be called POST validation
- /**
- * Adds rel="noopener" to any links which target a different window
- * than the current one. This is used to prevent malicious websites
- * from silently replacing the original window, which could be used
- * to do phishing.
- * This transform is controlled by %HTML.TargetNoopener.
- */
- class HTMLPurifier_AttrTransform_TargetNoopener extends HTMLPurifier_AttrTransform
- {
- /**
- * @param array $attr
- * @param HTMLPurifier_Config $config
- * @param HTMLPurifier_Context $context
- * @return array
- */
- public function transform($attr, $config, $context)
- {
- if (isset($attr['rel'])) {
- $rels = explode(' ', $attr['rel']);
- } else {
- $rels = array();
- }
- if (isset($attr['target']) && !in_array('noopener', $rels)) {
- $rels[] = 'noopener';
- }
- if (!empty($rels) || isset($attr['rel'])) {
- $attr['rel'] = implode(' ', $rels);
- }
- return $attr;
- }
- }
|