SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Въпрос за валидирането на URL в PHP

scoobydoo

Know you can!
Според тази страница URL адресът не може да съдържа "<" и ">". А когато пусна стандартната функция за валидиране на URL в PHP, както е показано отдолу, казва че е валиден URL-а с HTML код в него.
Защо така?
PHP:
$url = "http://www.example.com/aaaa<b>aaaa</b>aaa";

if(!filter_var($url, FILTER_VALIDATE_URL))
{
echo "NOT VALID";
}
else
{
echo "VALID";
}

//изписва се VALID
 
Re: Въпрос за валидирането на URL в PHP

Тази функция валидира спрямо http://www.faqs.org/rfcs/rfc2396.html , а там пише:

The angle-bracket "<" and ">" and double-quote (") characters are
excluded because they are often used as the delimiters around URI in
text documents and protocol fields.

Ако всичко това го правиш за борба с XSS, решението е да се филтрират данните на изхода, а не на входа. Тоест чрез htmlspecialchars()
 
За: Re: Въпрос за валидирането на URL в PHP

За: Re: Въпрос за валидирането на URL в PHP

Мерси за отговора. То наистина имало такъв.
Ама това обяснение дето са го казали, не ми е ясно много. Какво като се били използвали тези знаци в документи. Много странно обяснение. Само заради това са решили да пускат HTML код в URL-а. Аз разчитам на тях да ми валидират URL, а те ми пращат HTML код :).
Аз искам да валидирам и на входа все пак. Явно ще трябва да се минава и през strip_tags(). Безобразие.
 
Последно редактирано:

Горе