api-8.x-1.x-dev/src/TwigExtension/SafeMarkup.php

src/TwigExtension/SafeMarkup.php
<?php

namespace Drupal\api\TwigExtension;

use Drupal\Component\Utility\Xss;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;

/**
 * SafeMarkup twig extension to filter out html coming from the database.
 *
 * Filter '|raw' is not recommended so we at least do some filtering to prevent
 * XSS attacks.
 */
class SafeMarkup extends AbstractExtension {

  /**
   * {@inheritdoc}
   */
  public function getFilters() {
    return [new TwigFilter('safe_markup', [$this, 'filterMarkup'], ['is_safe' => ['html']])];
  }

  /**
   * {@inheritdoc}
   */
  public function getName() {
    return 'api.twig_extension.safe_markup';
  }

  /**
   * Filters the string through the Xss filter.
   *
   * @param string $string
   *   String to check.
   *
   * @return string
   *   Filtered string.
   */
  public static function filterMarkup($string) {
    return Xss::filterAdmin($string);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc