|
|
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
Нужно хрантить 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> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:00:48 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
Для этого придумали bbcode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:07:29 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
Если даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:08:54 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
Hett Дело в том что нужно хранить именно HTML. Со страницами наверное так. храню в чистом виде и вывожу как есть. авторЕсли даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема. Не понял это, можете пожалуйста объяснить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:17:24 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
TWK Hett Дело в том что нужно хранить именно HTML. Со страницами наверное так. храню в чистом виде и вывожу как есть. авторЕсли даже в каком-то одном месте вы не будете эскейпить данные, то написать уязвимость будет не проблема. Не понял это, можете пожалуйста объяснить ?да все просто - запрос к БД с полученными от клиента непроверенными данными - всегда опасен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:23:16 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
asws Но многие CMS позволяют редактировать/сохранять контент страницы именно в html виде. то есть например контент страницы они не преобразует с htmlspecialchars на выходе, а любые другие данные преобразуют. так ? или Сохранять данные именно в html виде все данные которые выбрались и ушли рендериться необходимо пропускать через htmlspecialchars ? но тогда как какие-то данные отобразить отрендереным html ? ведь при выборке данные уже обработаются этим htmlspecialchars ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 10:37:25 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
фильтровать теги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 11:25:26 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
TWK, Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в <script> Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 11:54:21 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
ShSergeTWK, Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в <script> Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 11:54:47 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
TWK asws Но многие CMS позволяют редактировать/сохранять контент страницы именно в html виде. то есть например контент страницы они не преобразует с htmlspecialchars на выходе, а любые другие данные преобразуют. так ? или Сохранять данные именно в html виде все данные которые выбрались и ушли рендериться необходимо пропускать через htmlspecialchars ? но тогда как какие-то данные отобразить отрендереным html ? ведь при выборке данные уже обработаются этим htmlspecialcharsЛучше точно знать, что и как та-или-иная CMS делает, лично я всегда смотрю исходный код, а он у многих платных CMS открыт, и обязательно структуру БД. В любом случае - все известные CMS постоянно обновляют версии, поскольку появляются новые методы их взлома. Лично я практикую изменение кода в некоторых местах или расширение под свои нужды. Есть компании, предлагающие свои решения + CMS - конструктор, донастраиваемый на конкретный проект, например, inDynamics. Это отличный вариант для платежеспособных клиентов - получают как правило то, что хотят, за деньги, разумеется. Это не реклама, например наша организация для одного своего клиента сменила CMS inDynamics на собственную систему, поскольку клиенту часто нужны изменения, причем иногда - довольно серьезные, и мы организавали этому клиенту полную автоматизацию на своей системе (летает быстро и легко), да и еще некоторые учетные системы этого клиента перенесли со старого метода работы с XLS-файлами по почте - - на новые веб-проекты, где намного удобнее вести совместную работу, и т.д. и т.п. TWK, почитайте про SQL-инъекции, если еще не читали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 11:55:53 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
asws в данное время беспокоит XSS. и то что для этого пропускаю все через htmlspecialchars но так не получится отрендерить разметку страницы, например, так как все пропускается уже через htmlspecialchars а потом с этими обработанными данными уже ничего нельзя сделать, получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 12:09:42 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
$content = <b>test</b> далее $content = htmlspecialchars($content); теперь $content = <b> </b> обратно это как то можно преобразовать в <b>test</b> ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 12:13:10 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
TWK, Приведите корректный тестовый пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 12:16:13 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
ShSergeTWK, Визуальные редакторы именно и вставляют форматированный хтмл-текст. Другое дело, что запрещается вводить хтмл "ручками", например тэг <script> ввести никак не получится. По причине его автоматического преобразование в <script> Кстати, если процитировать, то что я написал, ББкоде нарисует неправильно. Проверка не должна ограничиваться только клиентской стороной, если пользователь будет иметь коварный умысел, то он легко обойдет эту защиту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 13:22:24 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
HettПроверка не должна ограничиваться только клиентской стороной, если пользователь будет иметь коварный умысел, то он легко обойдет эту защиту. +1. Конечно же! Например, на сервере можно проверить наличие в строке, приведенного к uppercase текста "<SCRIT". В этом случае - сразу нафиг посылать без выдачи ошибок, потому что это не с вашего сайта пришло. А от sql-ingection хорошо помогает real_escape_string, или использование параметров в запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 17:48:46 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
Hett, ПС. А процитировать именно тот текст, что я написàл слабò? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 17:52:52 |
|
||
|
Хранение HTML в БД и его вывод.
|
|||
|---|---|---|---|
|
#18+
<script> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2012, 18:04:53 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=136&tid=1464750]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 519ms |

| 0 / 0 |
