Как создать независимый HTML-блок? - PullRequest
0 голосов
/ 03 октября 2011

Я хочу знать, есть ли способ создать независимый блок HTML.

Для более подробного объяснения: Моя проблема в том, что у меня есть веб-страница, на которой я разрешаю некоторым пользователям добавлять контент (может содержать HTML и CSS) Я разрешаю им добавлять свое содержимое в определенный блок, но иногда их содержимое может быть не чистым кодом и может содержать некоторые DIVS без конца, или даже некоторые DIV заканчиваются без начального DIV Это иногда полностью искажает мою страницу

Есть ли способ сделать так, чтобы их контент отображался независимо от моего родительского div, чтобы мой div сначала хорошо отображался, а затем отображался контент внутри него?

Извините за длинное сообщение. Спасибо за любую попытку помочь

Ответы [ 5 ]

4 голосов
/ 03 октября 2011

Моя проблема в том, что у меня есть веб-страница, на которой я разрешаю некоторым пользователям добавлять контент (может содержать HTML и CSS). Я разрешаю им добавлять свой контент внутри определенного блока, но иногда их контент может быть не чистым кодом, и может содержать некоторые DIVS без конца, или даже некоторые DIV заканчиваются без начального DIV Это иногда полностью искажает мою страницу

Если это проблема, которую вы пытаетесь решить, то наличие какой-либо разметки, чтобы сказать, что кусок кода был независимым, не помогло бы: они могут включать код «Конец независимого раздела» в HTML.

Если вы хотите поместить код на страницу, вам нужно проанализировать его, санировать его (используя белый список), чтобы удалить что-либо потенциально опасное, а затем сгенерировать чистую разметку из DOM.

4 голосов
/ 03 октября 2011

иногда их содержимое может быть не чистым кодом и может содержать некоторые DIVS без конца, или даже некоторые DIV заканчиваются без начального DIV. Это иногда полностью искажает мою страницуРешением для вас будет добавление отправленного контента на вашу страницу внутри <iframe>.Таким образом, не имеет значения, является ли отправленный HTML недействительным.

Если вам нужно беспокоиться о пользователях, которые могут отправлять вредоносный контент (например, JavaScript), проблема становится намного сложнее: вам нужно очистить HTML,Я не могу сказать вам, как это сделать, не зная, какой язык на стороне сервера вы используете.

0 голосов
/ 03 октября 2011

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

Но поскольку существует множество тегов, которые можно использовать, или даже изобретенные теги, вы можете ограничить теги, которые пользователь может использовать в своем html.Вы ставите легенду с приемлемыми тегами.

Есть несколько довольно хороших html-анализаторов для php, но они могут сломаться для какого-то очень плохого html-кода, поэтому я предлагаю вам просто воссоздать его на основе анализас ограниченным подмножеством приемлемых тегов.

Я знаю, что это трудное / трудоемкое решение, но это то, что я имею в виду

0 голосов
/ 03 октября 2011

Самый безопасный способ - это ограничить теги, которые они могут отправлять, и проверить / очистить те, которые они делают, подобно тому, как мы можем использовать здесь разметку.

Не проверенный HTML, введенный в вашу страницу, требуетза неприятности.

Если это не удастся, старый добрый iframe добьется цели.

0 голосов
/ 03 октября 2011

вы можете использовать статические iframes. проверить это http://www.samisite.com/test-csb2nf/id43.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...