Выход из URL в атрибуте html в PHP - PullRequest
2 голосов
/ 17 мая 2011

В настоящее время я работаю с некоторым существующим кодом, который извлекает URL из запроса и вводит его в источник привязки. Это явно открытие для XSS, и использование urlencoding не сохраняет разумность URL внутри якоря. Мне любопытно, какой самый безопасный способ избежать данных без разрыва связи.

т.е.

 <? 
    $url = $_REQUEST['url'];
    echo '<a href="' . $url . '">sometext</a>'; 
?>

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

Также есть filter_var, в котором есть набор предопределенных фильтров, которые вы можете использовать, один из которых, я считаю, предназначен для URL: http://php.net/manual/en/function.filter-var.php

Редактировать: Yup: Sanitize filters: http://www.php.net/manual/en/filter.filters.sanitize.php

4 голосов
/ 17 мая 2011

htmlspecialchars($url) преобразует чувствительные к HTML символы в их эквиваленты. Тем не менее, есть возможность вставлять фрагменты JavaScript в URL-адреса - детали, о которых я лично не знаю. Более сложное решение, такое как HTML Purifier , может помочь вам в устранении большинства уязвимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...