Просмотр исходного кода

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 11 месяцев назад
Родитель
Сommit
6bb8680ae0
1 измененных файлов с 6 добавлено и 0 удалено
  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'];
 	}