Смягчение атак xss при создании ссылок

Я отправил этот вопрос некоторое время назад, и он отлично работает для поиска и «связывания» ссылок с созданных пользователем сообщений. Связать функцию регулярного выражения PHP Daring Fireball Method

<?php if (!function_exists("html")) { function html($string){ return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } } if ( false === function_exists('linkify') ): function linkify($str) { $pattern = '(?xi)\b((?:(http)s?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][az]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”'']))'; return preg_replace_callback("#$pattern#i", function($matches) { $input = $matches[0]; $url = $matches[2] == 'http' ? $input : "http://$input"; return '<a href="' . $url . '" rel="nofollow" target="_blank">' . "$input</a>"; }, $str); } endif; echo "<div>" . linkify(html($row_rsgetpost['userinput'])) . "</div>"; ?> 

Я обеспокоен тем, что я могу представить угрозу безопасности, вставив созданный пользователем контент в ссылку. Я уже избегаю пользовательского контента, исходящего из моей базы данных с помощью htmlspecialchars($string, ENT_QUOTES, 'UTF-8') прежде чем запускать его через функцию linkify и возвращаться обратно на страницу, но я прочитал в OWASP, что атрибуты ссылок должны быть для лечения XSS. Я думаю, что эта функция в порядке, поскольку она помещает созданный пользователем контент в двойные кавычки и уже была htmlspecialchars($string, ENT_QUOTES, 'UTF-8') с htmlspecialchars($string, ENT_QUOTES, 'UTF-8') , но я бы очень признателен, если кто-то с экспертизой xss подтвердит это. Благодаря!