защита от хакера при WYSIWYG

Paul_M

Новичок
защита от хакера при WYSIWYG

Я столкнулся с такой проблемой. Мне надо разрешить пользователю отравлять через форму на веб-страницу любой html (используется WYSIWYG). Как защититься от хакера? Некоторые вещи тут очевидны, но возможно существуют хитрые лазейки. Знает ли кто готовый парсер, удаляющий все кроме чистого html?
 

Кром

Новичок
если HTML текст с картинками, то это уже потенциальная дыра, вставят туда c:/con/con и прочая и прочая, и уже начнутся проблемы.
 

Paul_M

Новичок
По-моему, это не проблема, если запретить все внешние адреса. Т.е. любую кострукциию вида http//... я заменяю на http//:my_site
 

HEm

Сетевой бобер
Ограничить набор разрешенных тегов и запретить JS

Посмотри исходники форумов типа phpBB или Ultimate (так кажись зовется?), там меняют конструкции типа [ B ], [ I ], [ URL ] и т.д. выдери эту часть себе
 

PhpDeveloper

Guest
Re: защита от хакера при WYSIWYG

Автор оригинала: Paul_M
Я столкнулся с такой проблемой. Мне надо разрешить пользователю отравлять через форму на веб-страницу любой html (используется WYSIWYG). Как защититься от хакера? Некоторые вещи тут очевидны, но возможно существуют хитрые лазейки. Знает ли кто готовый парсер, удаляющий все кроме чистого html?
Пусть это будет доступоно только администраторам.

Если разрешать пользователю вставлять ЛЮБОЙ html, то ИМХО все дыры замучаешся искать:
<div width="10000" height="1222' onmouseover="...">
и т д
 

Ямерт

The Old One
Я как-то взял richtext.sourceforge.net, и оставил только возможность ставить Bold, Italic, Underline, линки, убрал возможность переключаться в режим правки HTML (чтобы умники свои тэги не ставили). Джентльменский набор.
 

Paul_M

Новичок
Спасибо за ответы, но они не решают мою задачу. Использовать WYSIWYG будет действительно только администратор. Но мне надо выставить систему на показ и дать возможность “демо режима”, в котором все будет очищаться каждые 15 минут, но этого времени достаточно что бы хакнуть.
Я думаю, что решение должно быть такое: 1. Удалять все внешние ссылки. 2. удалять все конструкции специфичные для скриптов, например, <?, Js, = без кавычки. Но как набрать список таковых?
 

PhpDeveloper

Guest
Автор оригинала: Paul_M
Спасибо за ответы, но они не решают мою задачу. Использовать WYSIWYG будет действительно только администратор. Но мне надо выставить систему на показ и дать возможность “демо режима”, в котором все будет очищаться каждые 15 минут, но этого времени достаточно что бы хакнуть.
Я думаю, что решение должно быть такое: 1. Удалять все внешние ссылки. 2. удалять все конструкции специфичные для скриптов, например, <?, Js, = без кавычки. Но как набрать список таковых?
В демо режиме пусть вообще не сохраняется
 

HEm

Сетевой бобер
набор слов которые надо будет обрезать ограничен... (OnClick, OnMouseOver, <? и т.д.)
 

PhpDeveloper

Guest
Автор оригинала: HEm
набор слов которые надо будет обрезать ограничен... (OnClick, OnMouseOver, <? и т.д.)
<iframe src="javascript: alert()">
</iframe>

Безусловно он не бесконечен :)
 

kuguarchik

Guest
если все для демо режима, который доступен только в течении 15 минут, то нафиг ничего удалять и не надо.... даже <?php mail... ?> или <script> while(true) alert('все ****')</script> ...

ибо, если это 15 минутный демо-доступ то и просматривать это будет только тот, кто эту страницу (письмо) и создал...
пусть смотрит на свои бесконечные алерты и слои в 10 экранов, да пусть хоть домашную страничку меняет и троянцы из js засылает (кстати, заодно может успеешь отловить, как это делается :) ) ...
он же это только себе зашлет !!!

стандартная проверка форм на пользовательский ввод и все, больше тебе ничего не нужно ....

а по поводу того, что вырезать из хтмл, то лучше даже не пытайтесь составить черный список выражений. хтмл css js flash и проч. проч. проч. сейчас позволяют столько, что эта задача практически сравнима с написанием русского матотестера :)

если нужно резать, то нужно резать все и оставлять только B I U без параметров....
 

Paul_M

Новичок
Автор оригинала: Ямерт
Убери режим редактирования HTML, ибо нефиг
не понял, что это даст? если данные отправляются от пользователя, то начинающий хакер легко вставит любой код. Важно, как их порезать на сервере.
 

Paul_M

Новичок
Автор оригинала: Ямерт
Убери режим редактирования HTML, ибо нефиг
Может быть, объяснишь, что это значит. Режим редактирования включен или выключен – это на странице у клиента. Если клиент хотя бы начинающий хакер, ему ничего не стоит в отправляемые методом POST вставить все что угодно. Какое значение имеет режим? Все дело в том, что я делаю на сервере. Если я вырезаю или преобразую все спецсимволы, то он не увидит возможности WYSIWYG.
 

netdog

net @
Автор оригинала: BlackWidow
Простите за тупость, что такое
c:/con/con?
Это что то там, создающее синий экранчик с подвисоном тачки, типа под виндой :)
работает вроде тока до win98se ;)
 
Сверху