From 1ca484b8278641df145240c0e70f2e5bbb41ed7c Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Tue, 18 Feb 2014 13:25:28 -0400 Subject: [PATCH] Do not use PHP_SELF Upstream is using extensively PHP_SELF which is the source of XSS vulnerabilities. This patch removes PHP_SELF and uses ? when possible, and also forces the use of SCRIPT_NAME instead of PHP_SELF.do-not-use-PHP_SELF-to-avoid-xss --- src/nusoap.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/nusoap.php b/src/nusoap.php index ee66d51..3e9a60c 100755 --- a/src/nusoap.php +++ b/src/nusoap.php @@ -4565,11 +4565,11 @@ function register($name, $in = array(), $out = array(), $namespace = false, $soa if (!$soapaction) { if (isset($_SERVER)) { $SERVER_NAME = $_SERVER['SERVER_NAME']; - $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $SCRIPT_NAME = $_SERVER['SCRIPT_NAME']; $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); } elseif (isset($HTTP_SERVER_VARS)) { $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; - $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $SCRIPT_NAME = $HTTP_SERVER_VARS['SCRIPT_NAME']; $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; } else { $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); @@ -4649,12 +4649,12 @@ function configureWSDL($serviceName, $namespace = false, $endpoint = false, $sty if (isset($_SERVER)) { $SERVER_NAME = $_SERVER['SERVER_NAME']; $SERVER_PORT = $_SERVER['SERVER_PORT']; - $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $SCRIPT_NAME = $_SERVER['SCRIPT_NAME']; $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); } elseif (isset($HTTP_SERVER_VARS)) { $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; $SERVER_PORT = $HTTP_SERVER_VARS['SERVER_PORT']; - $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $SCRIPT_NAME = $HTTP_SERVER_VARS['SCRIPT_NAME']; $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; } else { $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); @@ -5597,7 +5597,7 @@ function popout(){ // Hides message

' . $this->serviceName . '