Логин:
Пароль:
Регистрация
Напомнить пароль?
Сделать стартовой   |   Добавить в избранное
       
НАВИГАЦИЯ
ПО САЙТУ
•   Релизы
•   Пресс релизы
•   Дополнительные модули
•   Обнаруженные уязвимости

•   Системные требования
•   Полезные Советы
•   Возможности DataLife Engine

•   Видеоинструкция по созданию
    сайта и установке скрипта
•   Уроки по созданию шаблонов
•   Мультмедийные возможности
    скрипта

•   Лицензионное соглашение
•   Информация о покупке
•   Техническая поддержка
•   Онлайн документация
•   FAQ (Частые вопросы)

•   Обратная связь
•   Форум технической поддержки
•   RSS новости

•   Написать пожелание
    для новых версий скрипта
ОПРОС
НА САЙТЕ
Совершаете ли вы покупки в интернет?

Да охотно, если это выгодно
Только когда нет другого выбора
Нет, я не доверяю интернету
Нет, просто не понимаю как это сделать

КАЛЕНДАРЬ
«    Май 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
ПОПУЛЯРНЫЕ
СТАТЬИ
АРХИВ
НОВОСТЕЙ
Май 2012 (1)
Апрель 2012 (2)
Март 2012 (7)
Февраль 2012 (2)
Январь 2012 (1)
Декабрь 2011 (2)
НАШИ
ПАРТНЁРЫ
Шаблоны для DLE
DLE-Украина
МЫ
РАБОТАЕМ С
Аттестованный участник Webmoney
DLE-Украина
Главная страница » Баг Фиксы » Недостаточная фильтрация входящих данных Форум технической поддержки


Недостаточная фильтрация входящих данных
Раздел: Баг Фиксы
 
Проблема: Недостаточная фильтрация входящих данных при обработке новостей.

Ошибка в версии: 8.0 и ниже

Степень опасности: Низкая

Ручное исправление:

Откройте файл: engine/classes/parse.class.php

найдите:
            if( ((strpos( strtolower( $attrSubSet[1] ), 'expression' ) !== false) && ($attrSubSet[0] == 'style')) || (strpos( strtolower( $attrSubSet[1] ), 'javascript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'behaviour:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'vbscript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'mocha:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "href") || ($attrSubSet[0] == "href" and strpos( strtolower( $attrSubSet[1] ), $config['admin_path'] ) !== false and preg_match( "/[?&%<[]]/", $attrSubSet[1] )) || (strpos( strtolower( $attrSubSet[1] ), 'livescript:' ) !== false) ) continue;

замените на:
            if( ((strpos( strtolower( $attrSubSet[1] ), 'expression' ) !== false) && ($attrSubSet[0] == 'style')) || (strpos( strtolower( $attrSubSet[1] ), 'javascript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'behaviour:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'vbscript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'mocha:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "href") || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "src") || ($attrSubSet[0] == "href" and strpos( strtolower( $attrSubSet[1] ), $config['admin_path'] ) !== false and preg_match( "/[?&%<[]]/", $attrSubSet[1] )) || (strpos( strtolower( $attrSubSet[1] ), 'livescript:' ) !== false) ) continue;

Найдите:
        $source = str_replace( "`", "`", $source );

Ниже добавьте:
        $source = preg_replace( "#<iframe#i", "<iframe", $source );
        $source = preg_replace( "#<script#i", "<script", $source );


Дистрибутив версии 8.0 обновлен.


  • 85
 (Голосов: 12) 
 
#1 написал: WMDrakon (10 мая 2009 22:00)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 142
Статус: Пользователь offline
Спасибо :)

 
 
#2 написал: Fun (10 мая 2009 22:00)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 22
Статус: Пользователь offline
А можно с обновленного дистрибутива заменит parse.class.php файл? что бы не искать эти строка?

 
 
#3 написал: celsoft (10 мая 2009 23:49)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Цитата: Fun
А можно с обновленного дистрибутива заменит parse.class.php файл? что бы не искать эти строка?

конечно можно

 
 
#4 написал: Pentaru (11 мая 2009 01:19)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 21
Статус: Пользователь offline
Спасибо

 
 
#5 написал: Phanas (11 мая 2009 04:01)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 13
Статус: Пользователь offline
Цитата: celsoft
А можно с обновленного дистрибутива заменит parse.class.php файл? что бы не искать эти строка?

а в 7.5 ?

если нет то можете еще обновить 7.5 дистрибутив

 
 
#6 написал: celsoft (11 мая 2009 09:57)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Цитата: Phanas
а в 7.5 ?

Нет

 
 
#7 написал: FreeRider (11 мая 2009 10:41)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 18
Статус: Пользователь offline
спасибо)

 
 
#8 написал: Medik18 (11 мая 2009 12:23)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 20
Статус: Пользователь offline
Цитата: celsoft
Ошибка в версии: все версии

Почему если написано
Ошибка в версии: все версии
Данную ошибку нельзя исправить например на версии 7.3?
Считаю это не уважением к клиентам.

P.S.: Лицензия активирована.

 
 
#9 написал: celsoft (11 мая 2009 14:16)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Цитата: Medik18
Данную ошибку нельзя исправить например на версии 7.3?
Считаю это не уважением к клиентам.

Где написано, что нельзя? Ручное исправление опубликовано, и оно подходит для всех версий скрипта, в том числе и для версии 7.3

 
 
#10 написал: ATHF (11 мая 2009 15:23)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 26
Статус: Пользователь offline
Обновил!

Какая то интересная фраза "Недостаточная фильтрация входящих данных", что она означает?

 
 
#11 написал: wawilon (11 мая 2009 16:29)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 5
Статус: Пользователь offline
Какая то интересная фраза "Недостаточная фильтрация входящих данных", что она означает?

Ну то и означает, что входящие данные не достаточно хорошо фильтруются. Посылая всякие пакости в качестве обычных данных злоумышленник может вызвать некорректное поведение скрипта.

$source = preg_replace( "#<iframe#i", "&lt;iframe", $source );
$source = preg_replace( "#<script#i", "&lt;script", $source );

Меня вот больше интересует а почему нельзя просто все "<" и ">" заменить на &lt; и &gt;? Как мне кажется это уберет любые теги. Неужели это плохо?

 
 
#12 написал: megaborgovik (12 мая 2009 07:18)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 9
Статус: Пользователь offline
Celsoft, Спасибо за ручник, и своевременное выявление багов !!!

 
 
#13 написал: Medik18 (12 мая 2009 14:10)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 20
Статус: Пользователь offline
Цитата: celsoft
Где написано, что нельзя? Ручное исправление опубликовано, и оно подходит для всех версий скрипта, в том числе и для версии 7.3

Просто для рядового клиента, не знающего PHP, выполнить данную рекомендацию:

Откройте файл: engine/classes/parse.class.php

найдите:
if( ((strpos( strtolower( $attrSubSet[1] ), 'expression' ) !== false) && ($attrSubSet[0] == 'style')) || (strpos( strtolower( $attrSubSet[1] ), 'javascript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'behaviour:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'vbscript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'mocha:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "href") || ($attrSubSet[0] == "href" and strpos( strtolower( $attrSubSet[1] ), $config['admin_path'] ) !== false and preg_match( "/[?&%<\[\]]/", $attrSubSet[1] )) || (strpos( strtolower( $attrSubSet[1] ), 'livescript:' ) !== false) ) continue;


замените на:
if( ((strpos( strtolower( $attrSubSet[1] ), 'expression' ) !== false) && ($attrSubSet[0] == 'style')) || (strpos( strtolower( $attrSubSet[1] ), 'javascript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'behaviour:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'vbscript:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'mocha:' ) !== false) || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "href") || (strpos( strtolower( $attrSubSet[1] ), 'data:' ) !== false and $attrSubSet[0] == "src") || ($attrSubSet[0] == "href" and strpos( strtolower( $attrSubSet[1] ), $config['admin_path'] ) !== false and preg_match( "/[?&%<\[\]]/", $attrSubSet[1] )) || (strpos( strtolower( $attrSubSet[1] ), 'livescript:' ) !== false) ) continue;


не получится, т.к. код выглядит немного по другому.

 
 
#14 написал: Phanas (12 мая 2009 17:18)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 13
Статус: Пользователь offline
Medik18,
+ 1 могли еще пару первых версий исправить , там в этом парсе класс часто ошибки вылазят так то не хочется туда лезть .

 
 
#15 написал: celsoft (12 мая 2009 18:34)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Medik18,
Обновляются всегда только актуальные версии скрипта. Все другие версии скрипта считаются устаревшими и не рекоменуемыми к использованию. Обновлятся или нет решает каждый сам, но то что устаревшие версии скрипта не обновляются нами, не является неуважением к клиентам, это следствие того, что жизненный цикл этих версий истек.
Цитата: Medik18
Просто для рядового клиента, не знающего PHP, выполнить данную рекомендацию не получится, т.к. код выглядит немного по другому.

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

 
 
#16 написал: Phanas (13 мая 2009 02:25)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 13
Статус: Пользователь offline
Вы бы сначала выпускали старую версию с исправленными ошибками и там обновляли бы библиотеку Highslide JS редактор WYSIWYG и так далее ну тойсть без добавление новых функций..

Мне дак обновление те что присутствуют в верисии в 8.0 не так у ж нужны, и большинство модулей приходится под гонять под новые версии, и приходится нанимать прогера за деньги.. Это большой минус..

 
 
#17 написал: celsoft (13 мая 2009 03:46)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Цитата: Phanas
Вы бы сначала выпускали старую версию с исправленными ошибками и там обновляли бы библиотеку Highslide JS редактор WYSIWYG и так далее ну тойсть без добавление новых функций..

Причем здесь данный патч и Highslide и WYSIWYG? Вам не нужны новые версии, и новые возможности, другим нужны. DLE не персонально для вас разрабатывается.
Цитата: Phanas
и большинство модулей приходится под гонять под новые версии, и приходится нанимать прогера за деньги.. Это большой минус..

и вы хотите чтобы я был вашим персональным программистом, причем по стоимости скрипта. Только я не персональный программист, я работаю на проект, а не на конкретного заказчика. Вы приобретали DLE в том виде в котором он есть, а он обновляется за считанные минуты, и не нужно подгонять ни о одного стандартного модуля, который входит в дистрибутив. Вам гарантируется полная работоспособность именно стандартных файлов скрипта, а не многочисленных модулей, которые вам разрабатывал кто то и работоспособность модулей и их быстрое и беспроблемное обновление на новые версии нужно требовать от авторов этих модулей, а не здесь. Здесь вам предоставляют гарантированное и быстрое обновление только того, что вы именно здесь приобрели, а не где то еще.

 
 
#18 написал: GTS_gelezn (13 мая 2009 05:05)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 23
Статус: Пользователь offline
Не реально тянуть поддержку всех версий скрипта. Что за бред, одному последняя версия не нужна, другому предпоследняя. Чтоб не переписывать модули начиная с 8 версии ввели API. Пусть ваш прогер нанятый за деньги использует этот функционал. Если в нем чего то не хватает, связывается с celsoft ом и просит дополнить.
Кстати API пропиарили, но хорошо бы заделать какуюнить страничку, что оно позволяет на текущий момент, каковы методы доступа к тому или иному. Как в примери для получения инфы о пользователях только для всех возможных функций.

 
 
#19 написал: lestatbbk (15 мая 2009 10:50)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 5
Статус: Пользователь offline
Спасибо, исправил *THANX*

 
 
#20 написал: Mr-X (18 мая 2009 14:08)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 12
Статус: Пользователь offline
bully спасибо

 
 
#21 написал: pokladovs (19 мая 2009 20:59)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
Спасибо wink

 
 
#22 написал: shvak (20 мая 2009 14:05)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
спс. заменил файл

 
 
#23 написал: max_nutnet (21 мая 2009 11:02)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
Не сказал бы, что эта дыра со степенью опасности низкая.
Мне обильно затроянили сайт, скорее всего из-за этой вот дыры.

 
 
#24 написал: fora (1 июня 2009 14:13)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 3
Статус: Пользователь offline
Спасибо Владимир smile

 
 
#25 написал: alex_778 (5 июня 2009 22:31)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
what

 
 
#26 написал: sirota77 (10 июля 2009 14:47)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
Цитата: Medik18
не получится, т.к. код выглядит немного по другому

согласен, но рядовому клиенту и нефиг в коде делать ( уже засрали школьники интернет)

 
 
#27 написал: drkane (20 августа 2009 21:56)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
где можно указать чтоб 8.0 заменилось на 8.2 ?
я исправил вручную. еще бы хотелось исправить это)))

 
 
#28 написал: celsoft (20 августа 2009 22:58)    
 




Группа: Администраторы
Публикаций: 208
Комментариев: 1380
Статус: Пользователь offline
Цитата: drkane
где можно указать чтоб 8.0 заменилось на 8.2 ?
я исправил вручную. еще бы хотелось исправить это)))

А причем здесь 8.2? Это не исправление для 8.2 или от 8.2. Версия 8.2 изначально не подвержена данной проблеме.

 
 
#29 написал: Guideline (17 сентября 2009 06:59)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 6
Статус: Пользователь offline
Спасибо большое!

 
 
Информация
 
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
 
 
Главная страница   •   Релизы   •   Модули   •   Форум поддержки   •   Покупка   •   Обратная связь

© 2004 - 2012 SoftNews Media Group. Сайт работает под управлением DataLife Engine.