Одесса: 10°С (вода 9°С)
Киев: 4°С
Львов: 10°С

Тема: Обезвредить функцию

Ответить в теме
Показано с 1 по 5 из 5
  1. Вверх #1

    По умолчанию Обезвредить функцию

    Привет.
    Скажите плиз, а данную функцию легко обезвредить или она может быть завязана на остальной код программы?

    Код:
    	}	
    	function prepareContent($text,  $length=200, &$params) {
    		$tags_option = $params->get('strip_tags', 'a,br');
    		
    		$tags = explode(",", $tags_option);
    		$strip_tags = array();
    		for($i = 0; $i < count($tags); $i++) {
    			$strip_tags[$i] = '<'.trim($tags[$i]).'>';
    		}
    		$tags = implode(',', $strip_tags);
    		
    		$text = preg_replace( "'<script[^>]*>.*?</script>'si", "", $text );
    		$text = preg_replace( '/{.+?}/', '', $text);
    		$text = preg_replace( "'<(br[^/>]*?/|hr[^/>]*?/|/(div|h[1-6]|li|p|td))>'si", ' ', $text );
    		$text = strip_tags($text, $tags);
    
    		if (strlen($text) > $length) {
    			$text = substr($text, 0, strpos($text, ' ', $length)). "..." ;
    		} 
    		return $text;
    	}
    Она как бы предназначена для фильтрации от программного кода вводимой информации, по критерию $tags_option, где можно задать разрешенные операторы.
    Но, во первых понятно что все возможные варианты не ввести, да и не нужно, потому как javascript все равно режется, а во-вторых комментирование строк с replace позволяет таки выполняться js, но с ошибками, т.е. кастрировать надо на уровне
    $tags_option = $params->get('strip_tags', 'a,br'); ?
    Подскажите, если не трудно?
    спасибо заранее


  2. Вверх #2
    Потерянный в раю Аватар для Hedin
    Пол
    Мужской
    Адрес
    Эвиал
    Сообщений
    2,486
    Репутация
    1574
    Если вам защититься, то я бы искал что-нить готовое. Подумать логично, так грабли есть давно и наверняка кто-то уже все укра.. написал
    Я не падаю. Я так летаю. Каждый летает как умеет

  3. Вверх #3
    нет, мне наоборот.
    Чтобы данный скрипт перестал работать, пропуская для выполнения javascript, php, html.
    На данном этапе пропускает только заранее предопределенные теги HTML

  4. Вверх #4
    Посетитель
    Пол
    Мужской
    Возраст
    27
    Сообщений
    132
    Репутация
    16
    PHP код:
    function prepareContent($text,  $length=200, &$params
    {
    return 
    $text;

    Жизнь в стиле Debian уже отучила меня собирать что-либо самостоятельно

  5. Вверх #5
    всё гениально просто: врач сказал отрезать - значит отрезать!

    Спасибо!


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения