@@ -95,8 +95,8 @@ protected function protocolWithActiveSsl($protocol)
95
95
protected function getHostName ()
96
96
{
97
97
// Check for proxy first
98
- if ($ this ->isValidForwardedHost ( ) && $ host = $ this ->getHeader ( ' X_FORWARDED_HOST ' )) {
99
- $ elements = explode (', ' , $ host );
98
+ if ($ header = $ this ->getHeader ( ' X_FORWARDED_HOST ' ) && $ this ->isValidForwardedHost ( $ header )) {
99
+ $ elements = explode (', ' , $ header );
100
100
$ host = $ elements [count ($ elements ) - 1 ];
101
101
} elseif (!$ host = $ this ->getHeader ('HOST ' )) {
102
102
if (!$ host = $ this ->getServerVar ('SERVER_NAME ' )) {
@@ -164,20 +164,18 @@ protected function getHeader($key)
164
164
/**
165
165
* Checks if the value in X_FORWARDED_HOST is a valid hostname
166
166
* Could prevent unintended redirections
167
+ *
168
+ * @param string $header
169
+ *
170
+ * @return boolean
167
171
*/
168
- protected function isValidForwardedHost ()
172
+ protected function isValidForwardedHost ($ header )
169
173
{
170
- $ host = $ this ->getHeader ('X_FORWARDED_HOST ' );
171
- if (!$ host ) {
172
- return false ;
173
- }
174
-
175
- $ elements = explode (', ' , $ host );
174
+ $ elements = explode (', ' , $ header );
176
175
$ host = $ elements [count ($ elements ) - 1 ];
177
176
178
- return return ( preg_match ("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i " , $ domain_name ) //valid chars check
179
- && preg_match ( " /^.{1,253}$/ " , $ domain_name ) //overall length check
180
- && preg_match ("/^[^\.]{1,63}(\.[^\.]{1,63})*$/ " , $ domain_name ) ); //length of each label
177
+ return preg_match ("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i " , $ host ) //valid chars check
178
+ && 0 < strlen ( $ host ) && strlen ( $ host ) < 254 //overall length check
179
+ && preg_match ("/^[^\.]{1,63}(\.[^\.]{1,63})*$/ " , $ host ); //length of each label
181
180
}
182
-
183
181
}
0 commit comments