Вы здесь

Когда лучше применять check_plain()?

1

Когда лучше применять check_plain()?

Ну тут обычно только пару вариантов:
1) При сабмите сразу вписывать в базу очищенное значение.
2) При выводе.

Как убрать разрушение кавычек? Обычно на H1 косячит (сам h1 выводится стандартным шаблоном без вмешательств).

Версия Drupal: 
7.x
Категория: 
Security
Вопрос задан 09.08.2015 - 09:48
Аватар пользователя SAM
SAM
212

Ответы

3

При выводе.

Если почистите данные на сабмите, то для обработки надо конвертировать обратно:
1. показать исходный текст в поле ввода;
2. вывести текст без check_plain, для пользователя с правом на html;
и др.

Поэтому в базе храните сырые данные для удобной обработки.

Прилагаю известную и полезную табличку про функции очистки выводимого содержимого:

P.S. Про кавычки не понял вопроса.

Ответ дан 09.08.2015 - 10:50

У Entity есть функция вывода заголовка. Там такое: return check_plain($entity->label)

Создаем сущность с таким заголовком - <script>alert('1');</script>
В итоге получаем H1 и title такой - &lt;script&gt;alert(&#039;1&#039;);&lt;/script&gt;

Комментарий оставлен 09.08.2015 - 11:32

Спасибо, теперь понятно.
Просто много где приходится обрабатывать вывод одного и того же(

Комментарий оставлен 09.08.2015 - 14:25

Может быть в какую-нибудь переменную записать очищенное значение, а потом обращаться сразу к ней? Типа как safe_value у полей длинного текста.

Комментарий оставлен 09.08.2015 - 14:57
1

В базе принято хранить сырые данные

Ответ дан 09.08.2015 - 11:00
Аватар пользователя xandeadx
xandeadx
1527