[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.225.234.226: ~ $
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Twig\TokenParser;

use Twig\Error\SyntaxError;
use Twig\Node\IncludeNode;
use Twig\Node\SandboxNode;
use Twig\Node\TextNode;
use Twig\Token;

/**
 * Marks a section of a template as untrusted code that must be evaluated in the sandbox mode.
 *
 *    {% sandbox %}
 *        {% include 'user.html' %}
 *    {% endsandbox %}
 *
 * @see https://twig.symfony.com/doc/api.html#sandbox-extension for details
 */
final class SandboxTokenParser extends AbstractTokenParser
{
    public function parse(Token $token)
    {
        $stream = $this->parser->getStream();
        $stream->expect(/* Token::BLOCK_END_TYPE */ 3);
        $body = $this->parser->subparse([$this, 'decideBlockEnd'], true);
        $stream->expect(/* Token::BLOCK_END_TYPE */ 3);

        // in a sandbox tag, only include tags are allowed
        if (!$body instanceof IncludeNode) {
            foreach ($body as $node) {
                if ($node instanceof TextNode && ctype_space($node->getAttribute('data'))) {
                    continue;
                }

                if (!$node instanceof IncludeNode) {
                    throw new SyntaxError('Only "include" tags are allowed within a "sandbox" section.', $node->getTemplateLine(), $stream->getSourceContext());
                }
            }
        }

        return new SandboxNode($body, $token->getLine(), $this->getTag());
    }

    public function decideBlockEnd(Token $token)
    {
        return $token->test('endsandbox');
    }

    public function getTag()
    {
        return 'sandbox';
    }
}

class_alias('Twig\TokenParser\SandboxTokenParser', 'Twig_TokenParser_Sandbox');

Filemanager

Name Type Size Permission Actions
AbstractTokenParser.php File 641 B 0644
ApplyTokenParser.php File 1.42 KB 0644
AutoEscapeTokenParser.php File 1.58 KB 0644
BlockTokenParser.php File 2.46 KB 0644
DeprecatedTokenParser.php File 1013 B 0644
DoTokenParser.php File 801 B 0644
EmbedTokenParser.php File 2.24 KB 0644
ExtendsTokenParser.php File 1.37 KB 0644
FilterTokenParser.php File 1.86 KB 0644
FlushTokenParser.php File 735 B 0644
ForTokenParser.php File 4.95 KB 0644
FromTokenParser.php File 1.67 KB 0644
IfTokenParser.php File 2.47 KB 0644
ImportTokenParser.php File 1.18 KB 0644
IncludeTokenParser.php File 1.62 KB 0644
MacroTokenParser.php File 1.89 KB 0644
SandboxTokenParser.php File 1.79 KB 0644
SetTokenParser.php File 2.05 KB 0644
SpacelessTokenParser.php File 1.53 KB 0644
TokenParserInterface.php File 1.12 KB 0644
UseTokenParser.php File 1.97 KB 0644
WithTokenParser.php File 1.29 KB 0644