Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет jave скриптов html-тегов в форме 
:(
    Опции темы
Alexey007
Дата 31.3.2007, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



Вообщем делаю гостевую книгу, и мне нужно чтоб никто не мог написать html теги.
PM MAIL   Вверх
-=Ustas=-
Дата 31.3.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



strip_tags() и поиск


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
skyboy
Дата 31.3.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



либо strip_tags сразу после ввода(как и подсказал -=Ustas=-)
либо htmlspecialchars перед выводом уже сохраненного.
вызывать htmlspecialchars перед выводом все равно придется(потому как надо будет заэкранировать "<",">","&" и другие), потому, в принципе, можно использовать только htmlspecialchars перед выводом, а хранить в неизменном виде(мало ли, может пригодится, чтоб доказывать злонамеренную деятельность горе-хакера  smile )
 
PM MAIL   Вверх
Alexey007
Дата 24.4.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



skyboy, strip_tags не подойдет, т.к. если тег случайно забыли закрыть, то удалится весь последующий текст. Поэтому выбираю htmlspecialchars.

Помогите пожалуйста сделать таблицу Options в базе данных.
Нужно поле, в котором включается и отключается запрет тегов. Как правильно сделать?
PM MAIL   Вверх
skyboy
Дата 25.4.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Alexey007 @  24.4.2007,  22:38 Найти цитируемый пост)
trip_tags не подойдет, т.к. если тег случайно забыли закрыть, то

при желании можно обработать текст и в конце его(текста) добавить все недостающие закрытые теги smile
PM MAIL   Вверх
Alexey007
Дата 25.4.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



как? smile 
Там же просто КУЧА всяких тегов... и как знать где именно закрывать?
Можно конешно сделать на проверку.. сколько есть < и >
PM MAIL   Вверх
skyboy
Дата 25.4.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



создаешь стек. в него пихаешь открывающие теги и вынимаешь закрывающие. в конце документа для всех тегов, оставшихся в стеке(не было соотвествующих закрывающих) генерируешь закрывающие и дописываешь в документ.
единственное: если в тексте появляются пересекающиеся пары(например: <b><u></b></u>) то их надо "выправлять". например, в моем примере "не принимать в расчет" тег </b> и просто его проигнорировать(несоотвествие порядка), потому в конце документа придется собственноручно добавить </b>.
Впрочем, этот подход хорош только для "обучения", потому что велосипед. С квадратными колесами: strip_tags НЕ обрезает аттрибуты тегов, которые ему сказано не выбрасывать. Т.е. всякие javascript - обработчики на onclick,onmousemove etc остаются вместе с тегами. А это уже - точно никому не надо.
Так что переходит на BBS коды(всякие так "","" и прочие - хотя бы на этом форуме глянь) и при выводе уже заменяй то же + на <b> + </b>. Решается сразу две проблемы:
1. Только теги, которые сам определишь, будут использоваться.
2. никаких javascript-обработчиков smile
PM MAIL   Вверх
Alexey007
Дата 25.4.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



ничего не понял. smile 
можешь показать на конкретном примере?
PM MAIL   Вверх
skyboy
Дата 25.4.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(skyboy @  25.4.2007,  17:00 Найти цитируемый пост)
Впрочем, этот подход хорош только для "обучения", потому что велосипед. С квадратными колесами: strip_tags НЕ обрезает аттрибуты тегов, которые ему сказано не выбрасывать. Т.е. всякие javascript - обработчики на onclick,onmousemove etc остаются вместе с тегами. А это уже - точно никому не надо.
Так что переходит на BBS коды(всякие так "[ b ]","[ / b ]" и прочие - хотя бы на этом форуме глянь) и при выводе уже заменяй то же + на <b> + </b>. Решается сразу две проблемы:
1. Только теги, которые сам определишь, будут использоваться.
2. никаких javascript-обработчиков


Добавлено @ 19:17
Цитата(Alexey007 @  25.4.2007,  18:05 Найти цитируемый пост)
ничего не понял. 

то был бредне-рационализм. меня всегда в плохое настроение тянет строить велосипеды.

Добавлено @ 19:18
Цитата(Alexey007 @  25.4.2007,  18:05 Найти цитируемый пост)
можешь показать на конкретном примере? 

если ты говорил не про стек и "ручную" обработку тегов, а про BBS-коды, то посмотри хотя бы на этом форуме ;)

Добавлено через 8 минут и 1 секунду
впрочем, и BBS я зря приплел - как я понял, тебе вообще форматирование не надо. Ни жирный шрифт, ни красные буквы... и в самом деле - только special_chars при выводе и всё...

Это сообщение отредактировал(а) skyboy - 25.4.2007, 19:19
PM MAIL   Вверх
cereza
Дата 25.4.2007, 23:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 1.4.2007

Репутация: нет
Всего: нет



я новенький не судите строго но я бы сделал через str_replace()
замена к примеру html,div и так далее...
PM MAIL ICQ   Вверх
skyboy
Дата 25.4.2007, 23:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(cereza @  25.4.2007,  22:19 Найти цитируемый пост)
замена к примеру html,div и так далее... 

да, в принципе, не надо. Можно менять только "<" на "&lt;" и всё... smile
так, наверное, намного быстрее будет...
правильная идея(только все теги менять не надо ;))
PM MAIL   Вверх
Alexey007
Дата 25.4.2007, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



skyboy, &lt; будет очень портить вид(

Добавлено через 5 минут и 14 секунд
Кароче мне надо так
Если в поле есть теги - вошли все нафиг, добавлять не буду, убирайте, горе-хакерыsmile))
Если нет - Добро пожаловать. Добавляю ваш коментsmile))

Так и ещё ОЧ. важно.. чтобы эту функцию модно было включать и отключать, т.е. чтою в БД была таблица, которая отвечала за активность или неактивность отключения тегов.
PM MAIL   Вверх
skyboy
Дата 26.4.2007, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Alexey007 @  25.4.2007,  22:50 Найти цитируемый пост)
&lt; будет очень портить вид( 

чем символ "меньше" будет тебе мешать?  smile 
PM MAIL   Вверх
Alexey007
Дата 26.4.2007, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.3.2007

Репутация: 1
Всего: 1



Сори за оффтоп: А это меньше?smile Засыпаю...
А гл. задача - см. сверху
PM MAIL   Вверх
skyboy
Дата 26.4.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Alexey007 @  25.4.2007,  23:05 Найти цитируемый пост)
Сори за оффтоп: А это меньше?

да. насколько мне помниться, мнемокод для символа меньше: в браузере будет отображаться "<", т.е. по-человечески, но никакой здравомыслящий браузер не будет работать с "&lt;div>" как  с тегом "<div>"  smile 
В принципе, htmlspecialchars и меняет много разных символов(&,<,>,",') на их мнемокоды вида "&...;", что никак не влияет на отображение, зато эти символы уже не будут считаться "управляющими".
Вот только в сравнении с htmlspecialchars применение str_replace может увеличить скорость... Правда, и грабли там могут быть smile))))
ладно, забей. юзая htmlspecialchars
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.