Symfony3 - Как проверить теги HTML - PullRequest
0 голосов
/ 28 сентября 2018

С помощью валидаторов Symfony
Как предотвратить ввод некоторых HTML-тегов, таких как <input></input> <textarea><textarea>
, в поле ввода и сохранение в базе данных?

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

также вы можете использовать strip_tags функцию php в своей функции сеттера для предотвращения тегов html, также вы можете передать некоторые разрешенные теги этой функции.

public function setText()
{
    $this->text = strip_tags($text);
    return $this;
}
0 голосов
/ 28 сентября 2018

Вы можете утверждать, используя регулярные выражения в свойствах текста / строки в вашей сущности.Например, это должно блокировать любые теги HTML в строке:

// src/Entity/Thing.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Thing
{
    /**
     * @Assert\Regex(
     *     pattern="/<[a-z][\s\S]*>/i",
     *     match=false,
     *     message="Your text cannot contain HTML"
     * )
     */
    protected $text;
}

Это должно проверять элементы input и textarea:

// src/Entity/Thing.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Thing
{
    /**
     * @Assert\Regex(
     *     pattern="/<(?=.*? .*?\/ ?>|textarea|input)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i",
     *     match=false,
     *     message="Your text cannot contain certain HTML tags"
     * )
     */
    protected $text;
}
...