Dashboard: Strip more extraneous IP parts to prevent PHP warnings.

This iterates on earlier versions of the code, in order to handle more edge cases. An arbitrary string like `or=\"` will now be stripped, as well as reachability scopes like `%eth0`.

Props eamax, soulseekah, iandunn.
Fixes #41083.


git-svn-id: https://develop.svn.wordpress.org/trunk@42968 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ian Dunn
2018-04-10 23:18:04 +00:00
parent 33979450ac
commit ede824e3cd
2 changed files with 66 additions and 7 deletions

View File

@@ -502,6 +502,41 @@ class Test_WP_Community_Events extends WP_UnitTestCase {
'unknown',
false,
),
// Invalid IP. Sometimes proxies add things like this, or other arbitrary strings.
array(
'or=\"[1000:0000:0000:0000:0000:0000:0000:0001',
false,
),
// Invalid IP. Sometimes proxies add things like this, or other arbitrary strings.
array(
'or=\"1000:0000:0000:0000:0000:0000:0000:0001',
false,
),
// Invalid IP. Sometimes proxies add things like this, or other arbitrary strings.
array(
'1000:0000:0000:0000:0000:0000:0000:0001or=\"',
false,
),
// Malformed string with valid IP substring. Sometimes proxies add things like this, or other arbitrary strings.
array(
'or=\"[1000:0000:0000:0000:0000:0000:0000:0001]:400',
'1000::',
),
// Malformed string with valid IP substring. Sometimes proxies add things like this, or other arbitrary strings.
array(
'or=\"[1000:0000:0000:0000:0000:0000:0000:0001]',
'1000::',
),
// Malformed string with valid IP substring. Sometimes proxies add things like this, or other arbitrary strings.
array(
'or=\"[1000:0000:0000:0000:0000:0000:0000:0001]400',
'1000::',
),
// Malformed string with valid IP substring. Sometimes proxies add things like this, or other arbitrary strings.
array(
'[1000:0000:0000:0000:0000:0000:0000:0001]:235\"or=',
'1000::',
),
// IPv4, no port
array(
'10.20.30.45',
@@ -569,7 +604,7 @@ class Test_WP_Community_Events extends WP_UnitTestCase {
),
// IPv6, port, compatibility mode
array(
'[::ffff:10.15.20.25]:30000',
'[::FFFF:10.15.20.25]:30000',
'::ffff:10.15.20.0',
),
// IPv6, no port, compatibility mode shorthand
@@ -582,6 +617,16 @@ class Test_WP_Community_Events extends WP_UnitTestCase {
'[::127.0.0.1]:30000',
'::ffff:127.0.0.0',
),
// IPv6 with reachability scope
array(
'fe80::b059:65f4:e877:c40%16',
'fe80::',
),
// IPv6 with reachability scope
array(
'FE80::B059:65F4:E877:C40%eth0',
'fe80::',
),
);
}
}