Explorar el Código

HTTP Auth disallow multiple headers (#7528)

When using HTTP Auth methods (including OpenID Connect), exactly 1 HTTP header should be received, not more.
Alexandre Alapetite hace 11 meses
padre
commit
6bb8680ae0
Se han modificado 1 ficheros con 6 adiciones y 0 borrados
  1. 6 0
      lib/lib_rss.php

+ 6 - 0
lib/lib_rss.php

@@ -813,6 +813,12 @@ function checkTrustedIP(): bool {
 }
 
 function httpAuthUser(bool $onlyTrusted = true): string {
+	$auths = array_intersect_key($_SERVER, ['REMOTE_USER' => '', 'REDIRECT_REMOTE_USER' => '', 'HTTP_REMOTE_USER' => '', 'HTTP_X_WEBAUTH_USER' => '']);
+	if (count($auths) > 1) {
+		Minz_Log::warning('Multiple HTTP authentication headers!');
+		return '';
+	}
+
 	if (!empty($_SERVER['REMOTE_USER']) && is_string($_SERVER['REMOTE_USER'])) {
 		return $_SERVER['REMOTE_USER'];
 	}