Перейти к публикации
xXapokalypsesXx

DataLife Engine Удаление check_xss (); и его последствия

Рекомендованные сообщения

xXapokalypsesXx

Привет Всем!

У меня возник вопрос на счёт файла engine/init.php в котором на 54 строке прописано:

check_xss ();

Собственно если я эту строку удалю, каких последствий в работе или безопасности ожидать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid

надумал в ВК встроить?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
volfing

@xXapokalypsesXx,Ну судя по названию функции - наверное возникнет угроза проведения xss атаки,что не очень то и приятно :) 



Да, все правильно,вот эта функция и она проверяет попытки проведения xss:
 

function check_xss() {

	$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\\", "/", $url );

	if ($_GET['do'] == "xfsearch") {

		$f = html_entity_decode( urldecode( $_GET['xf'] ), ENT_QUOTES, 'ISO-8859-1' );

		$count1 = substr_count ($f, "'");
		$count2 = substr_count ($f, '"');
		$count3 = substr_count ($url, "'");
		$count4 = substr_count ($url, '"');

		if ( $count1 == $count3 AND $count2 == $count4 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, './' ) === false) AND (strpos( $url, '../' ) === false) AND (strpos( $url, '.php' ) === false) ) return;

	}

	if ($_GET['do'] == "tags") {

		$f = html_entity_decode( urldecode( $_GET['tag'] ), ENT_QUOTES, 'ISO-8859-1' );

		$count1 = substr_count ($f, "'");
		$count2 = substr_count ($url, "'");

		if ( $count1 == $count2 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, '"' ) === false) AND (strpos( $url, './' ) === false) AND (strpos( $url, '../' ) === false) AND (strpos( $url, '.php' ) === false) ) return;

	}
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {
			if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) die( "Hacking attempt!" );
		}
	
	}
	
	$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\\", "/", $url );
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, '\'' ) !== false) ) {
			if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) die( "Hacking attempt!" );
		
		}
	
	}

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
xXapokalypsesXx

@a-droid, от тебя ничего не скроешь) :)

 

@volfing, спасибо большое) :p_up:

 

Я собираюсь сделать IFrame приложение ВКонтакте используя движок DLE.

Но когда подключаю домен, в приложении показывается сообщение "Hacking attempt!".

Нашёл одно решение, нужно удалить строку check_xss (); , тогда будет нормально работать приложение,

но как сказал @volfing это делает уязвимость в движке.

Может есть какой-то другой способ решения этой проблемы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ART

@xXapokalypsesXx

 

Найди альтернативу, например.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
volfing

 

Может есть какой-то другой способ решения этой проблемы?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid

есть наработки по поводу автоматической регистрации и авторизации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a-droid
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {
			if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) die( "Hacking attempt!" );
		}
	
	}

это проверка адресной строки?

когда убрать эту строчку то все работает в ВК

Изменено пользователем a-droid

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
volfing

@a-droid, Все что связано с $_GET['do'] по-идеи не нужно убирать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...