Forums / National / Russian / Тех. поддержка / [Исправлено] О безопасности - acunetix

p4l1ch
#41067 2015-10-09 19:29

Недавно смотрел логи и обнаружил некие странные каракули - сканили сайт через acunetix.

Скачал себе и решил сам посканить, посмотреть что скажет.

В целом вроде хорошо, но кое-что - мелочи нашлись.

rc.php - у меня включено сжатие css\js

и он на него массив начал слать - в итоге прямым текстом выдало - php ошибка в такой-то строке в файле /var/www/итд

сделал проверку строки - поменял

if (isset($_GET['rc']) && preg_match('#^[\w\.\-]+\.(js|css)$#', $_GET['rc'], $mt))
{
	$src_uri = $cfg['cache_dir'] . '/static/' . $_GET['rc'];
	$content_type = $mt[1] == 'js' ? 'text/javascript' : 'text/css';
}

на

if (isset($_GET['rc']) && is_string($_GET['rc']))
{
	if (preg_match('#^[\w\.\-]+\.(js|css)$#', $_GET['rc'], $mt)){
	$src_uri = $cfg['cache_dir'] . '/static/' . $_GET['rc'];
	$content_type = $mt[1] == 'js' ? 'text/javascript' : 'text/css';
	}
}

 

далее - system/function.php

при проверке других файлов, кажется он докопался к login и начал в него кидать массив, выдал ошибки function, в которых был путь к файлу на сервере

в 2 местах добавил проверку

~432 строка

	if ($maxlen>0)
	{
		/* string test*/
		if (is_string($v)) {
		$v = mb_substr($v, 0, $maxlen);
		}
	}

 

и нем же еще 1 проверка на строку

~471

		case 'TXT':
		/* string test*/
			if (is_string($v))
			{
				$v = trim($v);
				if (mb_strpos($v, '<')===FALSE)
				{
					$pass = TRUE;
				}
			else
			{
				$defret = str_replace('<', '&lt;', $v);
			}
			}
			break;

 

и последнее на что оно сильно ругалось - xss в каноникале - что можно скрипт использовать

поменял в header.php

	$out['canonical_uri'] = empty($out['canonical_uri']) ? str_replace('&', '&amp;', $sys['canonical_url']) : $out['canonical_uri'];
	$out['canonical_uri'] = strip_tags($out['canonical_uri']);
	$out['canonical_uri'] = htmlentities($out['canonical_uri'], ENT_QUOTES, "UTF-8");
	$out['canonical_uri'] = htmlspecialchars($out['canonical_uri'], ENT_QUOTES);

 

после этого ругаться перестал, вопрос к знающим людям, подскажите где тут ошибки

тк я не программист, а только учусь)

This post was edited by Macik (2016-01-07 12:05, 9 years ago)