все, что тебе нужно - сделать htmlspecialchars:
<?php
$url = 'http://server.ru/?var=foo&var=Привет, мир!&XSS=<script>alert(1)</script>';
$url = htmlspecialchars($url);
?>
<a href="<?=$url?>">link</a>
все остальные вопросы про безопасность - твои выдумки. тут почитай материал -
phpfaq.ru/tech/safety
Если пользователь вел какое-то авно в строку url-адреса, то это сугубо его личные проблемы, твоя задача лишь при отображении предотвратить XSS. Все.
Если нужна валидация URL, то самый правильный ответ тут -
https://stackoverflow.com/a/1411800