1--TEST-- 2GHSA-w8qr-v226-r27w 3--EXTENSIONS-- 4filter 5--FILE-- 6<?php 7 8function test(string $input) { 9 var_dump(filter_var($input, FILTER_VALIDATE_URL)); 10} 11 12echo "--- These ones should fail ---\n"; 13test("http://t[est@127.0.0.1"); 14test("http://t[est@[::1]"); 15test("http://t[est@[::1"); 16test("http://t[est@::1]"); 17test("http://php.net\\@aliyun.com/aaa.do"); 18test("http://test[@2001:db8:3333:4444:5555:6666:1.2.3.4]"); 19test("http://te[st@2001:db8:3333:4444:5555:6666:1.2.3.4]"); 20test("http://te[st@2001:db8:3333:4444:5555:6666:1.2.3.4"); 21 22echo "--- These ones should work ---\n"; 23test("http://test@127.0.0.1"); 24test("http://test@[2001:db8:3333:4444:5555:6666:1.2.3.4]"); 25test("http://test@[::1]"); 26 27?> 28--EXPECT-- 29--- These ones should fail --- 30bool(false) 31bool(false) 32bool(false) 33bool(false) 34bool(false) 35bool(false) 36bool(false) 37bool(false) 38--- These ones should work --- 39string(21) "http://test@127.0.0.1" 40string(50) "http://test@[2001:db8:3333:4444:5555:6666:1.2.3.4]" 41string(17) "http://test@[::1]" 42