Безопасность $_SERVER['REQUEST_URI']

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Собственно вопрос...

$_SERVER['REQUEST_URI'] - далеко не самая безопасная переменная. Она выводит именно то, что вбил пользователь в браузер, а там может быть многое...
Возникла необходимость безопасно отследить страницу, которую открыл пользователь и дать эту ссылку администратору.

Как бы сделать это максимально безопасно для администратора? Ломаю голову 3-ий день...

Будет использоваться в DLE
 
Что не безопасно в данном примере?
Можно пример эксплуатации
18-12-2016 03-28-20.jpg
Просто многое зависит от настроек сервера .htaccess'ов и т.д.
 
@world-tour, эксплуатацию именно под DLE не знаю, а вот под
PHP:
echo $_SERVER['REQUEST_URI'];
Элементарно - достаточно открыть страницу index.php?test=<script>alert('Ok');</script>

Как использовать в ДЛЕ? Ну кинуть админу ссылку на удаление чего-нибудь... Или блокировку кого-нибудь... Да мало ли операций по $_GET в DLE проводится?
 
В данном случае человеческий фактор, тяжеловато XSS задействовать в реальных условиях. Это как на всякий случай сервер в бункер поставить, вдруг война, а в данном случае дальше XSS не выйдет) Тем более что бы ты попался на XSS не поверю)) слишком давно наблюдаю за тобой))
Пример просил именно для DLE так как одно время писал под нее, потому что сомневаюсь что там пройдет такое. А брать все возможные переменные и анализировать ПО и версии php, в теории можно весь php забраковать
 
@world-tour, эксплуатацию именно под DLE не знаю, а вот под
PHP:
echo $_SERVER['REQUEST_URI'];
Элементарно - достаточно открыть страницу index.php?test=<script>alert('Ok');</script>

Как использовать в ДЛЕ? Ну кинуть админу ссылку на удаление чего-нибудь... Или блокировку кого-нибудь... Да мало ли операций по $_GET в DLE проводится?
urlencode или
PHP:
function my_escape_html($string)
{
    $search = array(
        '<', '>', '"', '\'', '{', '}'
    );

    $replace = array(
        '&lt;', '&gt;', '&quot;', '&#039;', '&lcub;', '&rcub;',
    );

    return str_replace($search, $replace, $string);
}

В данном случае человеческий фактор, тяжеловато XSS задействовать в реальных условиях. Это как на всякий случай сервер в бункер поставить, вдруг война, а в данном случае дальше XSS не выйдет) Тем более что бы ты попался на XSS не поверю)) слишком давно наблюдаю за тобой))
Пример просил именно для DLE так как одно время писал под нее, потому что сомневаюсь что там пройдет такое. А брать все возможные переменные и анализировать ПО и версии php, в теории можно весь php забраковать
Попасться не попадется, для этого и создана тема. А вот забить тут на безопасность нельзя. XSS очень опасная вещь

XSS = любое действие от имени любого пользователя, так как используя XSS можно сделать CSRF (для защиты от csrf часто используются токены - а их можно получить с помощью XSS)
 
Последнее редактирование:
Назад
Сверху