Skip to content

[UrlValidator] Url with curly braces is not correctly validated #58720

Open
@ODY90

Description

@ODY90

Symfony version(s) affected

v7.1.6

Description

Found that correct url processed with error by url validator

$url = 'https://www.google.com/webhp?q={price}'; // valid url

$validator = SymfonyValidation::createValidator();
$constraints = [new Url(relativeProtocol: true, requireTld: false)];
$validator->validate($url, $constraints)->count(); // 1

Seems we need to add curly braces to allowed symbols in regex for query section of url.

How to reproduce

<?php
require_once __DIR__.'/vendor/autoload.php';
use Symfony\Component\Validator\Constraints;

$url = 'https://www.google.com/webhp?q={price}'; // valid url

$validator = SymfonyValidation::createValidator();
$constraints = [new Url(relativeProtocol: true, requireTld: false)];

var_dump($validator->validate($url, $constraints)->count()); //1

Possible Solution

current

(?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )?   # a query (optional)

added \{\}

(?:\? (?:[\pL\pN\-._\~!$&\'\[\]\{\}()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )?   # a query (optional) 

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions