Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Фильтрация ссылок (как входящие данные)


Автор: maxipub 8.4.2014, 09:24
Добрый день!

Есть разработка, где сохраняется в БД HTTP_REFERER с последующим выводом их пользователю в виде ссылок а-ля

Код

echo '<a href="'.$href_from_db.'">'.$href_from_db.'</a>';


С сохранением в БД все понятно. Но безопасно ли ссылки так выводить? Через htmlspecialchars тоже не выведешь, т.к. будут портиться возможные параметры. Как быть? Опасаюсь всяких хаков со вставкой JavaScript кода. Может фильтровать двойные кавычки?

Автор: bars80080 8.4.2014, 12:52
отфильтровать можно что-угодно. str_replace, preg_replace

строго говоря, следовало бы ещё на стадии добавления ссылки задекларировать формат того, что можно добавлять.
а перед вставкой в БД пересобрать ссылку заново с помощью:
http://ru2.php.net/manual/en/function.parse-url.php
http://ru2.php.net/manual/en/function.http-build-query.php

Автор: maxipub 8.4.2014, 15:03
Спасибо, понятно. Будем обрабатывать кавычки. smile Что-то мне подсказывает, что parse_url будет портить некоторые данные. Надо будет намедни проверить по данным из БД.

ЗЫ: обрабатывать такие вещи на стадии добавления не есть гуд, лучше хранить в исходном виде, а то так можно и потерять что-то важное, ИМХО smile 

Автор: maxipub 8.4.2014, 17:26
Провел тест с parse_url, результаты обнадеживающие. Пока выборка, конечно, мизерная, но...  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)