|
|
|
| На сайте будет возможность добавлять контент пользователями. Пользователи должны иметь возможность использовать в тексте обычные html теги (выделение жирным, тыблицы, вставка видео и т. д.).
Как лучше все это хранить в Mysql? Какими функция обрабытывать при добавлении и при выводе? И как решить проблему, когда какой-нибудь пользователь не закроет определенный тег и это испортит оформление страницы? | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:05)
| | BBcode | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 20:16)
| | Пользователи должны иметь возможность использовать в тексте обычные html теги | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:17)
| | И еще писать для вас php- js- сценарии, а вы их выполнять будете? | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 20:18)
| | Не понял вас | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:20)
| | А что тут непонятно то? Если вы хотите, чтобы пользователь оперировал разметкой страницы, это значит творить по своему разумению, то что мешает ему включить в эту разметку то, чего бы вам крайне нежелательно было бы? | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 20:22)
| | Ввести список разрешенных тегов. И как-то же во многих движках это сделано. | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:24)
| | Хочется, делайте, кто же вам запрещает. Но вам какая разница чего вводить - или [b] или <b>, только первое безопаснее. А уж сделать это как "визуальная вставка" тоже можно.
Что касается как хранить в базе, вот так и хранить, как есть, а при выводе карячится с поиском символов среди этого, которые бы надо в html-представление перевести...
Мое дело предложить, ваше дело отказаться. | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 20:29)
| | Здравствуйте. Решения на выбор:
При внесении информации использовать функции:
1. string strip_tags ( string str [, string allowable_tags] ) - Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэго используется автомат, аналогичный примененному в функции fgetss().
Необязательный второй аргумент ([, string allowable_tags] ) может быть использован для указания тэгов, которые не должны удаляться.
2. >>И как решить проблему, когда какой-нибудь пользователь не закроет определенный тег и это испортит оформление страницы? При грамотной обработке эта проблема не будет Вас беспокоить.
P.S.: Желаю творческих успехов. | |
|
|
|
|
|
|
|
для: Rolex
(27.08.2012 в 20:44)
| | Здравствуйте. Спасибо, но мне этого не надо. | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 20:47)
| | Извиняюсь за беспокойство :) | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:24)
| | Здравствуйте. Решения на выбор:
При внесении информации использовать функции:
1. string strip_tags ( string str [, string allowable_tags] ) - Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэго используется автомат, аналогичный примененному в функции fgetss().
Необязательный второй аргумент ([, string allowable_tags] ) может быть использован для указания тэгов, которые не должны удаляться.
2. >>И как решить проблему, когда какой-нибудь пользователь не закроет определенный тег и это испортит оформление страницы? При грамотной обработке эта проблема не будет Вас беспокоить.
P.S.: Желаю творческих успехов. | |
|
|
|
|
|
|
|
для: Rolex
(27.08.2012 в 20:51)
| | Все это "розово" конечно, гладко... А почему вы думаете, что я не смогу выполнить активный скрипт в "разрешенном" теге? | |
|
|
|
|
|
|
|
для: Rolex
(27.08.2012 в 20:51)
| | Спасибо. Буду пробовать strip_tags | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 21:03)
| | Не поможет вам strip_tags, да и работает она некорректно. | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 21:09)
| | Значит найду другой способ. Смотрю, как в популярных движках сделано. Во всех почти можно использовать html для оформления. | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 21:13)
| | Возьмите готовый визуальный редактор, а про strip_tags забудьте. | |
|
|
|
|
|
|
|
для: confirm
(27.08.2012 в 21:24)
| | Готовый визуальный редактор хорош, если пользователю не надо большинства возможностей разметки, а нужен тупо WYSIWYG. Да и на стороне клиента, где визуальные редакторы работают, защиту от вредного кода не поставишь, увы.
Я однажды лет шесть тому по незнанию что-то нахулиганил в шаблоне для своего ЖЖ, так у меня потом вообще вся лента развалилась, и не только она, а еще и сама система редактирования шаблона перестала работать. Спасся с помощью ljPlus, там как-то один валидный пост прошел, и журнал самовосстановился. | |
|
|
|
|
|
|
|
для: DJ Paltus
(27.08.2012 в 22:27)
| | А если нужен только WYSIWYG, то его можно самому сделать, и на не html-тегах, а на ВВ. Не такая уж это и сверх задача. | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:05)
| | Видео вставлять не так уж и просто, потому что некоторые источники умеют это делать только через iframe, что само по себе опасно. В остальном - достаточно ввести список разрешенных тегов (strip_tags) и найти типограф, наподобие того, что вроде бы используется в codemirror, чтобы закрывать незакрытое, но на уровне сервера, а не клиента.
Но осторожность не помешает. Может, у задачи есть более простое решение? | |
|
|
|
|
|
|
|
для: DJ Paltus
(27.08.2012 в 20:45)
| | Вот кое что нашел: http://jevix.ru/project/ | |
|
|
|
|
|
|
|
для: DJ Paltus
(27.08.2012 в 20:45)
| | Вернее даже вот это http://code.google.com/p/jevix/ | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 21:38)
| | Я про него малость слышал, но ничего сказать не могу. Если он хорошо делает то, что там описано, то это как раз то, что надо. | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 21:38)
| | Спасибо, позырим.
Конфирма не слушайте с его BB - кодом.
У самого такая же задача стоит, будем писать скрипты по обработке (проверке) данных.
Не так страшен XSS как его малюют ))
Чем больше нас имеют, тем умнее мы становимся...
Взломать можно абсолютно любой сайт - вопрос времени и желания. Надо заниматься мониторингом...
http://softtime.ru/forum/read.php?id_forum=1&id_theme=40204#post231047 - вот тут Триан что-то дельное советовал.. | |
|
|
|
|
|
|
|
для: Jaroslav
(30.08.2012 в 13:27)
| | Да по мне, так вы хоть на С++ пишите свои страницы, и сразу с троянами, коли не страшно.
Дело не в ВВ как таковом, а в том, чего и насколько надо. Надо много - есть уже готовое, если сами не могем. | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:05)
| | Для безопасности можно создать массив где первый элемент будет, например, див, второй таблица и т.д.. после этого можете только числа принимать от клиента. Это целесообразно, т.к. вряд ли вы будете давать возможность строить с нуля | |
|
|
|
|
|
|
|
для: Sergeous
(27.08.2012 в 20:05)
| | Скажите, если я разрешаю использовать тег div, а в нем style - это безопасно?
<div style="text-align:left" >fghf</div>
|
| |
|
|
|