Вопрос по yii2-redactor

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Вопрос по yii2-redactor

Сообщение xr0m3oz »

Используя редактор https://github.com/yiidoc/yii2-redactor нужно при выводе применять экранирование тегов?
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

Походу надо экранировать, вопрос чем лучше? <?= \yii\helpers\Html::encode($username) ?> экранирует все хтмл символы, чем можно еще?
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Вопрос по yii2-redactor

Сообщение caHek2x »

у вас на выходе там html ? и вы хотите чтоб экранировало если вставят script но не трогало ваши разрешенные html теги ? если да то вам в сторону HtmlPurifier
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

Да именно так. А htmlprufer вроде говорят долго обрабатывает. Как ним лучше пользоваться?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вопрос по yii2-redactor

Сообщение ElisDN »

В представлении:

Код: Выделить всё

<?= \yii\helpers\HtmlPurifier::process($model->content, [     
    'Attr.AllowedRel' => array('nofollow'),
    'HTML.SafeIframe' => true,
    'URI.SafeIframeRegexp'=>'%^(https?:)?//(www\.youtube(?:-nocookie)?\.com/embed/|player\.vimeo\.com/video/)%',
]) ?>
Обернуть в $this->beginCache(['page', $model->id]).
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

Обернуть в $this->beginCache(['page', $model->id]).

Это я хочу сделать на Тикет страницы, получается одна страница, а комментарий может быть несколько, плюс они могут добавляться.
Получается нужно будет каждый комментарий кешировать?
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

Если мне нужно только несколько тегов такие как, <b> <p> <i> может лучше использовать strip_tags($text), это будет безопасно? При выводе информации
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вопрос по yii2-redactor

Сообщение ElisDN »

xr0m3oz писал(а): 2017.10.17, 14:08 Если мне нужно только несколько тегов такие как, <b> <p> <i> может лучше использовать strip_tags($text), это будет безопасно?
Попробуйте <p mouseover="alert(1)">Привет</p>.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Вопрос по yii2-redactor

Сообщение maleks »

xr0m3oz писал(а): 2017.10.17, 13:47 Получается нужно будет каждый комментарий кешировать?
Я кеширую себе каждый комментарий.
Для сохранения кеша использую дополнительное поле в таблице.
Yii2 universal module sceleton - for basic and advanced templates
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

ElisDN писал(а): 2017.10.17, 15:35
xr0m3oz писал(а): 2017.10.17, 14:08 Если мне нужно только несколько тегов такие как, <b> <p> <i> может лучше использовать strip_tags($text), это будет безопасно?
Попробуйте <p mouseover="alert(1)">Привет</p>.
Попробовал вроде как нормально, выводит только Привет
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Вопрос по yii2-redactor

Сообщение maleks »

xr0m3oz писал(а): 2017.10.17, 17:48 Попробовал вроде как нормально, выводит только Привет
Если будете разрешать, то пропустит:

Код: Выделить всё

print strip_tags('<p mouseover="alert(1)">Привет</p>', '<p>'); 
// выведет:
// <p mouseover="alert(1)">Привет</p>
Yii2 universal module sceleton - for basic and advanced templates
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

maleks писал(а): 2017.10.19, 06:48
xr0m3oz писал(а): 2017.10.17, 17:48 Попробовал вроде как нормально, выводит только Привет
Если будете разрешать, то пропустит:

Код: Выделить всё

print strip_tags('<p mouseover="alert(1)">Привет</p>', '<p>'); 
// выведет:
// <p mouseover="alert(1)">Привет</p>
Сделал фильтрацию через Prufer в момент создания записи. + strip_tags при выводе.
Кстати это у меня тоже пропускало когда один strip_tags был <p mouseover="alert(1)">Привет</p> но у меня в браузере алерт не появлялся почему то.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Вопрос по yii2-redactor

Сообщение maleks »

Лучше не фильтровать при записи
Yii2 universal module sceleton - for basic and advanced templates
xr0m3oz
Сообщения: 61
Зарегистрирован: 2015.05.20, 18:02

Re: Вопрос по yii2-redactor

Сообщение xr0m3oz »

maleks писал(а): 2017.10.19, 10:29 Лучше не фильтровать при записи
А в чем может может быть проблема?
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Вопрос по yii2-redactor

Сообщение maleks »

Например неправильно что то ввели, опечатка, жмете сохранить, пурифайер вам там все порезал как считает нужным и сохранил.
Вы чтобы исправить ошибку жмете редактировать, а исходного текста у вас нет.
Yii2 universal module sceleton - for basic and advanced templates
Ответить