Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Configurator/TemplateNormalizations/SetRelNoreferrerOnTargetedLinks.php
<?php

/**
* @package   s9e\TextFormatter
* @copyright Copyright (c) 2010-2021 The s9e authors
* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace s9e\TextFormatter\Configurator\TemplateNormalizations;

use
DOMElement;

/**
* Add rel="noreferrer" on links that open in a new context that would allow window.opener to be
* accessed.
*
* @link https://mathiasbynens.github.io/rel-noopener/
* @link https://wiki.whatwg.org/wiki/Links_to_Unrelated_Browsing_Contexts
*/
class SetRelNoreferrerOnTargetedLinks extends AddAttributeValueToElements
{
   
/**
    * {@inheritdoc}
    */
   
public function __construct(string $query = '//a[@target] | //area[@target]', string $attrName = 'rel', string $value = 'noreferrer')
    {
       
parent::__construct($query, $attrName, $value);
    }

   
/**
    * {@inheritdoc}
    */
   
protected function normalizeElement(DOMElement $element): void
   
{
        if (!
preg_match('(\\bno(?:open|referr)er\\b)', $element->getAttribute('rel')))
        {
           
parent::normalizeElement($element);
        }
    }
}