Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |
[CGI] дальше 14.02.02 12:26 Число просмотров: 1083
Автор: madazulu <Alexander> Статус: Member Отредактировано 14.02.02 12:27 Количество правок: 1
|
> > Есть какая то форма которую заполняет Хитрый Юзер, все > > есессно пишется в mysql > > > > Среди бывают еще и Хульные Клацкеры, которые могут > допустим > > выделить, заполненный в форму какой-то текст, путем > тега > >Bили еще чего нибуть впишут туда вплоть до JS > > > > так вот спрашивается как бороться с тегами, спец > символами > > и прочее? в каком направлении идти? > > самый простой способ - делать на строку ф-ю > htmlspecialchars() , которая заменит все < > и т.п. > на < >
ну допустим заменит ф-я, а отображатся как я понимаю тоже будет типа "у меня <>большой<> телевизор"?
как быть со спец символами?
З.Ы. http://www.geeboo.f2s.com/scriptTest.php3?code=nomat - полный РУЛЕЗЗ!!! особенно, прости господи, "ебал в рот" :)))
|
|
<programming>
|
[PHP + MySQL] фильтр тегов (общий вопрос) 14.02.02 11:56
Автор: madazulu <Alexander> Статус: Member
|
Есть какая то форма которую заполняет Хитрый Юзер, все есессно пишется в mysql
Среди бывают еще и Хульные Клацкеры, которые могут допустим выделить, заполненный в форму какой-то текст, путем тегаBили еще чего нибуть впишут туда вплоть до JS
так вот спрашивается как бороться с тегами, спец символами и прочее? в каком направлении идти?
|
 |
[CGI] [PHP + MySQL] фильтр тегов (общий вопрос) 14.02.02 12:05
Автор: paganoid Статус: Member
|
> Есть какая то форма которую заполняет Хитрый Юзер, все > есессно пишется в mysql > > Среди бывают еще и Хульные Клацкеры, которые могут допустим > выделить, заполненный в форму какой-то текст, путем тега >Bили еще чего нибуть впишут туда вплоть до JS
> > так вот спрашивается как бороться с тегами, спец символами > и прочее? в каком направлении идти?
самый простой способ - делать на строку ф-ю htmlspecialchars() , которая заменит все < > и т.п. на < >
|
 |  |
[CGI] дальше 14.02.02 12:26
Автор: madazulu <Alexander> Статус: Member Отредактировано 14.02.02 12:27 Количество правок: 1
|
> > Есть какая то форма которую заполняет Хитрый Юзер, все > > есессно пишется в mysql > > > > Среди бывают еще и Хульные Клацкеры, которые могут > допустим > > выделить, заполненный в форму какой-то текст, путем > тега > >Bили еще чего нибуть впишут туда вплоть до JS > > > > так вот спрашивается как бороться с тегами, спец > символами > > и прочее? в каком направлении идти? > > самый простой способ - делать на строку ф-ю > htmlspecialchars() , которая заменит все < > и т.п. > на < >
ну допустим заменит ф-я, а отображатся как я понимаю тоже будет типа "у меня <>большой<> телевизор"?
как быть со спец символами?
З.Ы. http://www.geeboo.f2s.com/scriptTest.php3?code=nomat - полный РУЛЕЗЗ!!! особенно, прости господи, "ебал в рот" :)))
|
 |  |  |
[CGI] дальше 14.02.02 14:04
Автор: paganoid Статус: Member Отредактировано 14.02.02 14:05 Количество правок: 1
|
> > ну допустим заменит ф-я, а отображатся как я понимаю тоже > будет типа "у меня <>большой<> телевизор"? > как быть со спец символами?
ну это не самый плохой вариант, кстати. Тут надо сразу определяться, что ты хочешь получить.
варианты
а) как указано выше, увидишь "вот [b]это[/b]"
б) удалять теги с помощью strip_tags, увидишь "это "
в) удалять с помощью strip_tags все кроме безопасных тегов - нарвёшься на опасные аттрибуты стилей
в) писать свой парсер с помощью regexp - самый оптимальный вариант.
после этого начинаются заморочки с переводом каретки, но это отдельная песня...
> > З.Ы. http://www.geeboo.f2s.com/scriptTest.php3?code=nomat > - полный РУЛЕЗЗ!!! особенно, прости господи, "ххххх" > :)))
да я просто озверел, 15 000 матерных выражений, различных по значению
просматривать :) Там есть еще всякие приколы...
|
 |  |  |  |
[CGI] дальше 14.02.02 14:28
Автор: madazulu <Alexander> Статус: Member
|
> ну это не самый плохой вариант, кстати. Тут надо сразу > определяться, что ты хочешь получить. > > варианты > а) как указано выше, увидишь "вот [b]это[/b]"
я не уловил а в чем польза [][/]...
> б) удалять теги с помощью strip_tags, увидишь "это " > в) удалять с помощью strip_tags все кроме безопасных тегов > - нарвёшься на опасные аттрибуты стилей
Попробую а,б,в. Сенкс за подсказку.
> г) писать свой парсер с помощью regexp - самый оптимальный > вариант. > > после этого начинаются заморочки с переводом каретки, но > это отдельная песня...
За неимением опыта про вариант "Г" даже думать и страшно.
Если не трудно напиши в чем заключается "физический смысл" "писать свой парсер с помощью regexp". Как я понял ЭТО перебирает символы, сверяет с "черным списком" и удаляет\заменяет всё не нужное. жаль что для меня пока это глухие дебри :))
|
 |  |  |  |  |
[CGI] дальше 14.02.02 17:30
Автор: paganoid Статус: Member
|
> > ну это не самый плохой вариант, кстати. Тут надо сразу > > определяться, что ты хочешь получить. > > > > варианты > > а) как указано выше, увидишь "вот [b]это[/b]" > > я не уловил а в чем польза [][/]...
ну просто если бы я написал < b > asdfas < / b > , то это заменилось бы
на asdasd . Посему я заменил < на [
польза в том, что нельзя вставить жабаскрипт и видно сразу, кто где как гадит. Продвинутые юзеры обламываются, поскольку отформатировать текст не могут.
> За неимением опыта про вариант "Г" даже думать и страшно. > Если не трудно напиши в чем заключается "физический смысл" > "писать свой парсер с помощью regexp". Как я понял ЭТО > перебирает символы, сверяет с "черным списком" и > удаляет\заменяет всё не нужное. жаль что для меня пока это > глухие дебри :))
к примеру, тебе надо оставить тэг нуу.... < P > , вычистить из него атрибуты, а в остальных тегах заменить < на & lt;
тогда
$text = eregi_replace ("<p[^>]*>" , ("{{{p}}}"), $text);
$text = htmlspecialchars($text);
$text = eregi_replace ("{{{p}}}>" , ("<p>"), $text);
---
справку по регекспам дать не готов, "это тема отдельной статьи" хыхых ,
|
|
|