Безопасный WYSIWYG

Spear

почемучка
Безопасный WYSIWYG

Здравствуйте,
у меня появилась довольно сложная проблема - нужно сдлеать доступ людям, которые будут наполнять сайт контентом. Т.к. невозможно предугадать, кто - добросовестный работник, а кто решит XSS залить в файл новости, мне нужно найти\напистаь (хаха. в яваскрипте я еж точно ноль) WYSIWYG редактор, который будет удалять все вредоностные коды.

Пожалуйста, посоветуйте - как делать.
под опасными тегами я понимаю, конечно,
<script>, <iframe> и аттрибут style.
есть такая идея - парсить сначала весь входящий хтмл код в ББ коды,
после этого удалять все теги, для который не нашлось ББ-заменителя, и после этого уже заносить в базу.. хотя может и в базу будут заноситься ББ коды, а уж при выведении пользователю будет парситься в РНР,

Пожалуйста, подскажите, - может быть кто-то таким уже занимался. Дело в том что в регекспах я не профи, и боюсь что не смогу написать достаточно безопасный парсер html>bb>html
 

Кром

Новичок
Сразу скажу. Если есть доступ к публикации, для недобросовестного человека этого более чем достаточно. Он може написать такое, что XSS покажется детской припаркой.

>WYSIWYG редактор, который будет удалять все вредоностные коды.

Редактор этого не делает. Вернее - это совершенно бесполезно делать с помощью редактора. :) Это нужно делать на стороне сервера с помощью PHP. Не знаешь регулярные выражения? Учи.
 

Spear

почемучка
Сразу скажу. Если есть доступ к публикации, для недобросовестного человека этого более чем достаточно. Он може написать такое, что XSS покажется детской припаркой.
пожалуйста, скажит подробнее - что ещё можно ожидать от потенциального "паскуды" в админке?
Все жизненно важные данные проверяются (например, принадлежность ка какой-то определенной категории и так далее. Все права в админке четко ограниены. Если не положено удалять новости - не удалят.
Вот и получается, что осталась одна проблема - защита самой публикации.

пожалуйста, посоветуйте, как делать.

Это нужно делать на стороне сервера с помощью PHP
нет ну это понятно. Я просто сказал не то, что хотел.
 

Кром

Новичок
>пожалуйста, скажит подробнее - что ещё можно ожидать от потенциального "паскуды" в админке?

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

Spear

почемучка
да ну ладно..
одно дело если чудо-ньюзмейкер решит написать, мол, идите вы все на (тут поле фантазии) и так далее - это сразу отредактируют.

И совершенно другое, если он наставит кучу айфреймов на вирусы (типо порно сайты и прочее), или какие-то хитроумные яваскрипты.
Я привнипе поэтому и спрашиваю ;)
Подскажите, пожалуйста, как же все-таки лучше делать?

-~{}~ 10.12.05 04:35:

да, ещё немаловажный вопрос - лучше в базе хранить ББ код и парсить его при выводе на экран, или хранить готовый ХТМЛ?
 

white phoenix

Новичок
храни всю публикацию в базе в том виде в каком она пришла из формы. а при отображении сначала прогоняй через [m]htmlspecialchars[/m], а затем обрабатывай BB-коды. таким образом не получится вставить JS и т.д. весь код просто будет виден у пользователя как текст.
 

SiMM

Новичок
> таким образом не получится вставить JS
Это смотря как будут реализованы BB-коды.
 

Andykalinin

Новичок
Давно меня эта тема интересовала. У меня тоже небольшой вопрос. Короче есть на сайте форма отправки новости (для пользователя), потом я в админке проверяю и публикую. Вапрос вот в чем безопасно ли будет в форму на сайте (публичную) вставить редактор? Просто я где-то слышал что это очень не безопасно...
 

white phoenix

Новичок
Andykalinin
из серии "у меня есть скрипт движка сайта, скажите, он безопасен?"
 

Andykalinin

Новичок
Я понимаю из какой оперы этот вопрос, но можно ведь ответить конкретней с аргументами...
 

ksnk

прохожий
Поясните пожалуйста! Теги форматирования - это BB коды, за которые парсер ВВ кодов несет полную ответственность. Каким образом "злыдень" может внести каку в публикуемую статью в обход этого самого парсера?
(HTML теги , imho, вредны по определению (Кто их знает в их будущих реализацияю, и должны быть за 'escape'лены))
 
Сверху