Browse Source

Check whether the $_SERVER['REQUEST_*'] vars exist before using them

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v12.0.0beta3
Joas Schilling 7 years ago
parent
commit
72c1b24844
No account linked to committer's email address

+ 5
- 3
core/Middleware/TwoFactorMiddleware.php View File

@@ -124,9 +124,11 @@ class TwoFactorMiddleware extends Middleware {

public function afterException($controller, $methodName, Exception $exception) {
if ($exception instanceof TwoFactorAuthRequiredException) {
return new RedirectResponse($this->urlGenerator->linkToRoute('core.TwoFactorChallenge.selectChallenge', [
'redirect_url' => urlencode($this->request->server['REQUEST_URI']),
]));
$params = [];
if (isset($this->request->server['REQUEST_URI'])) {
$params['redirect_url'] = $this->request->server['REQUEST_URI'];
}
return new RedirectResponse($this->urlGenerator->linkToRoute('core.TwoFactorChallenge.selectChallenge', $params));
}
if ($exception instanceof UserAlreadyLoggedInException) {
return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index'));

+ 3
- 3
lib/base.php View File

@@ -132,7 +132,7 @@ class OC {

OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT)));
/**
* FIXME: The following lines are required because we can't yet instantiiate
* FIXME: The following lines are required because we can't yet instantiate
* \OC::$server->getRequest() since \OC::$server does not yet exist.
*/
$params = [
@@ -174,7 +174,7 @@ class OC {

// Resolve /nextcloud to /nextcloud/ to ensure to always have a trailing
// slash which is required by URL generation.
if($_SERVER['REQUEST_URI'] === \OC::$WEBROOT &&
if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] === \OC::$WEBROOT &&
substr($_SERVER['REQUEST_URI'], -1) !== '/') {
header('Location: '.\OC::$WEBROOT.'/');
exit();
@@ -1005,7 +1005,7 @@ class OC {
}

// Handle WebDAV
if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND') {
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'PROPFIND') {
// not allowed any more to prevent people
// mounting this root directly.
// Users need to mount remote.php/webdav instead.

+ 5
- 6
lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php View File

@@ -246,12 +246,11 @@ class SecurityMiddleware extends Middleware {
);
} else {
if($exception instanceof NotLoggedInException) {
$url = $this->urlGenerator->linkToRoute(
'core.login.showLoginForm',
[
'redirect_url' => $this->request->server['REQUEST_URI'],
]
);
$params = [];
if (isset($this->request->server['REQUEST_URI'])) {
$params['redirect_url'] = $this->request->server['REQUEST_URI'];
}
$url = $this->urlGenerator->linkToRoute('core.login.showLoginForm', $params);
$response = new RedirectResponse($url);
} else {
$response = new TemplateResponse('core', '403', ['file' => $exception->getMessage()], 'guest');

+ 1
- 1
lib/private/Route/Router.php View File

@@ -75,7 +75,7 @@ class Router implements IRouter {
if(!(\OC::$server->getConfig()->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
$baseUrl = \OC::$server->getURLGenerator()->linkTo('', 'index.php');
}
if (!\OC::$CLI) {
if (!\OC::$CLI && isset($_SERVER['REQUEST_METHOD'])) {
$method = $_SERVER['REQUEST_METHOD'];
} else {
$method = 'GET';

Loading…
Cancel
Save