src/Sanitizer.php
protected function cleanAttributesOnWhitelist(\DOMElement $element)
    {
        for ($x = $element->attributes->length - 1; $x >= 0; $x--) {
            // get attribute name
            $attrName = $element->attributes->item($x)->name;

            // Remove attribute if not in whitelist
            if (!in_array(strtolower($attrName), $this->allowedAttrs) && !$this->isAriaAttribute(strtolower($attrName)) && !$this->isDataAttribute(strtolower($attrName))) {

                $element->removeAttribute($attrName);
                $this->xmlIssues[] = array(
                    'message' => 'Suspicious attribute \'' . $attrName . '\'',
                    'line' => $element->getLineNo(),
		);
            }

            // Do we want to strip remote references?
            if($this->removeRemoteReferences) {
                // Remove attribute if it has a remote reference
                if (isset($element->attributes->item($x)->value) && $this->hasRemoteReference($element->attributes->item($x)->value)) {
                    $element->removeAttribute($attrName);
                    $this->xmlIssues[] = array(
                        'message' => 'Suspicious attribute \'' . $attrName . '\'',
                        'line' => $element->getLineNo(),
		    );
                }
            }
        }
    }
protected function cleanAttributesOnWhitelist(\DOMElement $element)
    {
        for ($x = $element->attributes->length - 1; $x >= 0; $x--) {
            // get attribute name
            $attrName = $element->attributes->item($x)->name;

            // Remove attribute if not in whitelist
            if (!in_array(strtolower($attrName), $this->allowedAttrs) && !$this->isAriaAttribute(strtolower($attrName)) && !$this->isDataAttribute(strtolower($attrName))) {

                $element->removeAttribute($attrName);
                $this->xmlIssues[] = array(
                    'message' => 'Suspicious attribute \'' . $attrName . '\'',
                    'line' => $element->getLineNo(),
		);
            }

            // Do we want to strip remote references?
            if($this->removeRemoteReferences) {
                // Remove attribute if it has a remote reference
                if (isset($element->attributes->item($x)->value) && $this->hasRemoteReference($element->attributes->item($x)->value)) {
                    $element->removeAttribute($attrName);
                    $this->xmlIssues[] = array(
                        'message' => 'Suspicious attribute \'' . $attrName . '\'',
                        'line' => $element->getLineNo(),
		    );
                }
            }
        }
    }
protected function cleanAttributesOnWhitelist ( \ DOMElement $ element ) { for ( $ x = $ element -> attributes -> length - 1 ; $ x >= 0 ; $ x -- ) { // get attribute name $ attrName = $ element -> attributes -> item ( $ x ) -> name ; // Remove attribute if not in whitelist if ( ! in_array ( strtolower ( $ attrName ) , $ this -> allowedAttrs ) && ! $ this -> isAriaAttribute ( strtolower ( $ attrName ) ) && ! $ this -> isDataAttribute ( strtolower ( $ attrName ) ) ) { $ element -> removeAttribute ( $ attrName ) ; $ this -> xmlIssues [ ] = array ( 'message' => 'Suspicious attribute \'' . $ attrName . '\'' , 'line' => $ element -> getLineNo ( ) , ) ; } // Do we want to strip remote references? if ( $ this -> removeRemoteReferences ) { // Remove attribute if it has a remote reference if ( isset ( $ element -> attributes -> item ( $ x ) -> value ) && $ this -> hasRemoteReference ( $ element -> attributes -> item ( $ x ) -> value ) ) { $ element -> removeAttribute ( $ attrName ) ; $ this -> xmlIssues [ ] = array ( 'message' => 'Suspicious attribute \'' . $ attrName . '\'' , 'line' => $ element -> getLineNo ( ) , ) ; } } } }
Only allow attributes that are on the whitelist

@param \DOMElement $element
Only allow attributes that are on the whitelist