| p4l1ch |
|
|---|---|
|
Недавно смотрел логи и обнаружил некие странные каракули - сканили сайт через 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('<', '<', $v);
}
}
break;
и последнее на что оно сильно ругалось - xss в каноникале - что можно скрипт использовать поменял в header.php
$out['canonical_uri'] = empty($out['canonical_uri']) ? str_replace('&', '&', $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)
|
| Dr2005alex |
|
|---|---|
|
Не плохой вариант... есть что подправить ... будем смотреть.. WebKaa.ru - Cotonti Relax
|
| Dayver |
|
|---|---|
|
В файле datas/config.php параметр $cfg['display_errors'] чему равен? Pavlo Tkachenko aka Dayver
|
| p4l1ch |
|
|---|---|
|
FALSE |
| Dayver |
|
|---|---|
|
Поставьте TRUE и без всяких правок никаких путей ваш acunetix не получит. Pavlo Tkachenko aka Dayver
|
| p4l1ch |
|
|---|---|
|
хм.. странно.. $cfg['display_errors'] = FALSE; // Display error messages. Switch it FALSE on production sites ща попробую на виртуалке |
| Dayver |
|
|---|---|
|
Пардон, все перепутал (трудная неделя - в голове уже каша) ... действительно когда FALSE ошибки не должны выводится .... а значит странно что у вас выводятся - значит настройки сервера не дают управлять выводом ошибок движку. Pavlo Tkachenko aka Dayver
|
| Macik |
|
|---|---|
|
Создал тикет/ https://github.com/Cotonti/Cotonti/issues/1431 Добавлено 6 дней спустя: Для информации: как показывает проведенное на локальном сайте исследование (за наводку на Acunetix — автору топика отдельное спасибо) проблемных мест несколько больше, чем может показаться на первый взгляд. Работа над фиксами идет.
Добавлено 3 дня спустя:
На вскидку по приведенному куску кода: Ну вот как-то так. Добавлено 3 недели спустя: Правки внесены. Тикет №1431 закрыт. Кроме разных фиксов в `functions.php` добавлена функция `cot_url_sanitize()`, которая используется для фильтрации(кодирования) недопустимых символов в canonical URL. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
This post was edited by Macik (2015-11-19 10:16, 9 years ago)
|