- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочется дать возможность юзерам редактировать текст, но с другой стороны начнут пропихать xss.. Подскажите как лучше поступить. Может есть готовый класс для такой задачи?
http://nicedit.com/demos.php посмотрите.
А что бы не пропихивали xss , пропустить через strip_tags() со списком разрешенных тегов.
Сейчас много "легких" редакторов появилось
http://pietschsoft.com/demo/jHtmlArea/
http://nicedit.com/demos.php
http://code.google.com/p/jwysiwyg/ - мой любимый.
Из "легких", наверное самый лучший http://remiya.com/cms/projects/jquery-plugins/htmlbox/ , но реально не пробовал его. Единственный из "легких", кто умеет добавлять атрибут класса + имеет исчерпывающую документацию.
Для сложной верстки можно использовать одновременно два редактора с динамической заменой. Посмотрите решение с двойным редактором:
http://erum.ru/article/39
от внедрения когда поможет только принудительная зачистка. А она все равно нужна не столько из-за вредоносного кода сколько из-за мусора который появляется при копировании из MS Word. Для последнего можно взять готовое решение. Наиболее продвинутый наверное вот этот скрипт: http://www.phpclasses.org/browse/package/1020.html - здесь одновременно идет подчистка мусора и запрет на определенные теги и атрибуты.
что бы не пропихивали xss , пропустить через strip_tags() со списком разрешенных тегов.
strip_tags() кстати может не спасти. JS можно вляпать в атрибут типа onmouseover
Ayavryk, для фильтрации можно использовать ещё и HTMLPurifier http://htmlpurifier.org/ . В Yii он используется как встроенная "чистилка".
HTMLPurifier http://htmlpurifier.org/ . В Yii он используется
. Все больше и больше нравится Yii :)
Скачал http://code.google.com/p/jwysiwyg/
Для чистки кода мне понятен http://www.phpclasses.org/browse/package/1020.html
Хватит ли мне этого пхп класса(htmlcleaner) ?
Не совсем понял как пользоваться http://htmlpurifier.org/ ... Что-то там примеров нет совсем..
Он вроде тоже как для очистки хтмл используется?
Хватит ли мне этого пхп класса(htmlcleaner) ?
Не уверен. Но MS Word он чистит великолепно. Я пока багов не нашел. На предмет вредоносного кода надо внимательно изучать класс и пробовать. Но я бы не стал заморачиваться и дополнил бы регулярным выражением, который срезает все атрибуты, начинающиеся с префикса "on".
По поводу HTMLPurifier Dreammaker дал подсказку - ройте YII. Сам этим обязательно займусь, но не сейчас.
Личное имхо - для такой простой задачи, как чистка ХТМЛя, юзать достаточно увесистую библиотеку - несколько накладно (если не нужно делать что-то совсем экзотическое)
HTML чищу просто через DOMDocument::loadHTML и XPath-ом выгребаю текстовые ноды/разрешённые тэги/атрибуты
зы: разумеется, ко всему этому не лишнее написать небольшой хэлпер
HTML чищу просто через DOMDocument::loadHTML и XPath-ом выгребаю текстовые ноды/разрешённые тэги/атрибуты
вы маньяк, но ход ваших мыслей мне определенно нравится :)
на фоурме ikonboard такое
$self->{value} =~ s!\0!!g;
$self->{value} =~ s|&|&|g;
$self->{value} =~ s|<!--|<!--|g;
$self->{value} =~ s|-->|-->|g;
$self->{value} =~ s|<script|<script|ig;
$self->{value} =~ s|>|>|g;
$self->{value} =~ s|<|<|g;
$self->{value} =~ s|"|"|g;
$self->{value} =~ s| | |g;
$self->{value} =~ s!\|!|!g;
$self->{value} =~ s|\n|<br>|g;
$self->{value} =~ s|\$|$|g;
$self->{value} =~ s|\r||g;
$self->{value} =~ s|\_\_(.+?)\_\_||g;
$self->{value} =~ s|\\|\|g;
$self->{value} =~ s|\'|'|g;
$self->{value} =~ s|!|!|g;
FCKEditor http://ckeditor.com/download
http://ru.wikipedia.org/wiki/FCKeditor
Стандарт де-факто для сайтовых редакторов. Очень крутая вещь