Я пытаюсь escape дезинфицировать предоставленную пользователем ссылку в шаблоне веточки. Я использую Symfony 5. Изначально я начинал свой проект в Wordpress, но сейчас создаю его в Symfony. Мне очень понравилась функция esc_url Wordpress, с помощью которой можно было избежать ссылки, предоставленной пользователем, и она была бы действительной.
Теперь я знаю, что могу использовать фильтр escape ('url'), чтобы избежать ее. Но под капотом это просто запускает собственный php rawurlencode, который не очищает URL-адрес.
Пример:
Это:
<a href="{{ 'https://example.com/this/may-be-invalid/'|e('url') }}">SOME URL</a>
превращается в это:
<a href="https%3A%2F%2Fexample.com%2Fthis%2Fmay-be-invalid%2F">SOME URL</a>
Если пользователь щелкнет по этой ссылке, он будет перенаправлен на: http://localhost/https: //example.com/this/may-be-invalid/
Примечание: localhost может быть любой домен, просто пример.
Пример:
<a href="<?= esc_url('https://example.com/this/may-be-invalid/') ?>">SOME URL</a>
превращается в это:
<a href="https://example.com/this/may-be-invalid/">SOME URL</a>
Есть ли аналогичная функция / фильтр в Twig или do Мне нужно перенести esc_url Wordpress в мой проект, отличный от Wordpress?
Как я могу очистить предоставленный пользователем URL-адрес в Twig / Symfony?
Изменить: обновлен вопрос на основе комментария @ DarkBee