powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Хранение HTML в БД и его вывод.
18 сообщений из 18, страница 1 из 1
Хранение HTML в БД и его вывод.
    #37940278
TWK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно хрантить HTML(страницы, шаблоны) в БД и выводить в браузер этот HTML

1) Я сохраняю HTML как есть в БД. пример: <b>text</b>
2) Выбираю этот HTML из БД $content и на выходе в браузере получаю text

Но так в БД можно записать любой вредоносный javascrtipt или еще какой то нежелательный контент и запустить его при рендере $content на странице.

Например в Twig http://twig.sensiolabs.org/doc/filters/escape.html переменные в шаблоне говорит надо фильтровать через escape


Правильный ли такой подход:
Хранить HTML в БД как есть а выводить необходимо части сайта с html кодом как есть, так как это необходимо ?

Например контент страницы {{content}} или html шаблон {{template}} не прогонять через escape так как этот контент добавлял администратор и его надо отрендерить. Остальные переменные в шаблоне, в формах например использовать с escape фильтром.
<form>
<input name="message" val="{{message|escape }}">
<input name="email" val="{{email|escape }}">
</form>
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940281
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этого придумали bbcode
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940282
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940285
TWK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Дело в том что нужно хранить именно HTML. Со страницами наверное так. храню в чистом виде и вывожу как есть.

авторЕсли даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема.
Не понял это, можете пожалуйста объяснить ?
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940289
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TWK Hett
Дело в том что нужно хранить именно HTML. Со страницами наверное так. храню в чистом виде и вывожу как есть.

авторЕсли даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема.
Не понял это, можете пожалуйста объяснить ?да все просто - запрос к БД с полученными от клиента непроверенными данными - всегда опасен.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940293
TWK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws
Но многие CMS позволяют редактировать/сохранять контент страницы именно в html виде. то есть например контент страницы они не преобразует с htmlspecialchars на выходе, а любые другие данные преобразуют. так ?

или Сохранять данные именно в html виде все данные которые выбрались и ушли рендериться необходимо пропускать через htmlspecialchars ? но тогда как какие-то данные отобразить отрендереным html ? ведь при выборке данные уже обработаются этим htmlspecialchars
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940309
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фильтровать теги.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940325
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TWK,

Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в &lt;script&gt;
Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940326
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeTWK,

Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в <script>
Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940327
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TWK asws
Но многие CMS позволяют редактировать/сохранять контент страницы именно в html виде. то есть например контент страницы они не преобразует с htmlspecialchars на выходе, а любые другие данные преобразуют. так ?

или Сохранять данные именно в html виде все данные которые выбрались и ушли рендериться необходимо пропускать через htmlspecialchars ? но тогда как какие-то данные отобразить отрендереным html ? ведь при выборке данные уже обработаются этим htmlspecialcharsЛучше точно знать, что и как та-или-иная CMS делает, лично я всегда смотрю исходный код, а он у многих платных CMS открыт, и обязательно структуру БД.
В любом случае - все известные CMS постоянно обновляют версии, поскольку появляются новые методы их взлома.
Лично я практикую изменение кода в некоторых местах или расширение под свои нужды.

Есть компании, предлагающие свои решения + CMS - конструктор, донастраиваемый на конкретный проект, например, inDynamics.
Это отличный вариант для платежеспособных клиентов - получают как правило то, что хотят, за деньги, разумеется.

Это не реклама, например наша организация для одного своего клиента сменила CMS inDynamics на собственную систему,
поскольку клиенту часто нужны изменения, причем иногда - довольно серьезные, и мы организавали этому клиенту полную автоматизацию на своей системе (летает быстро и легко),
да и еще некоторые учетные системы этого клиента перенесли со старого метода работы с XLS-файлами по почте -
- на новые веб-проекты, где намного удобнее вести совместную работу, и т.д. и т.п.

TWK, почитайте про SQL-инъекции, если еще не читали.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940332
TWK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws в данное время беспокоит XSS. и то что для этого пропускаю все через htmlspecialchars но так не получится отрендерить разметку страницы, например, так как все пропускается уже через htmlspecialchars а потом с этими обработанными данными уже ничего нельзя сделать, получается...
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940333
TWK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$content = <b>test</b>

далее
$content = htmlspecialchars($content);

теперь
$content = <b> </b>

обратно это как то можно преобразовать в <b>test</b> ?
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940334
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TWK,

Приведите корректный тестовый пример.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940349
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeTWK,

Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в <script>
Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно.
Проверка не должна ограничиваться только клиентской стороной, если пользователь будет иметь коварный умысел, то он легко обойдет эту защиту.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940496
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПроверка не должна ограничиваться только клиентской стороной, если пользователь будет иметь коварный умысел, то он легко обойдет эту защиту.
+1. Конечно же! Например, на сервере можно проверить наличие в строке, приведенного к uppercase текста "<SCRIT". В этом случае - сразу нафиг посылать без выдачи ошибок, потому что это не с вашего сайта пришло. А от sql-ingection хорошо помогает real_escape_string, или использование параметров в запросах.
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940498
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

ПС. А процитировать именно тот текст, что я написàл слабò?
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940502
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
&lt;script&gt;
...
Рейтинг: 0 / 0
Хранение HTML в БД и его вывод.
    #37940503
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett&lt;script&gt;
Отлично!
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Хранение HTML в БД и его вывод.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]