mirror of
https://github.com/nextcloud/server.git
synced 2026-04-20 22:00:39 -04:00
fix(AppFramework): Allow requests with OCS-APIRequest header to pass CSRF checks
Signed-off-by: provokateurin <kate@provokateurin.de>
This commit is contained in:
parent
d5bb37ab0d
commit
9d1705259c
2 changed files with 24 additions and 0 deletions
|
|
@ -426,6 +426,10 @@ class Request implements \ArrayAccess, \Countable, IRequest {
|
|||
return false;
|
||||
}
|
||||
|
||||
if ($this->getHeader('OCS-APIRequest') !== '') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isset($this->items['get']['requesttoken'])) {
|
||||
$token = $this->items['get']['requesttoken'];
|
||||
} elseif (isset($this->items['post']['requesttoken'])) {
|
||||
|
|
|
|||
|
|
@ -2256,4 +2256,24 @@ class RequestTest extends \Test\TestCase {
|
|||
|
||||
$this->assertFalse($request->passesCSRFCheck());
|
||||
}
|
||||
|
||||
public function testPassesCSRFCheckWithOCSAPIRequestHeader() {
|
||||
/** @var Request $request */
|
||||
$request = $this->getMockBuilder('\OC\AppFramework\Http\Request')
|
||||
->setMethods(['getScriptName'])
|
||||
->setConstructorArgs([
|
||||
[
|
||||
'server' => [
|
||||
'HTTP_OCS_APIREQUEST' => 'true',
|
||||
],
|
||||
],
|
||||
$this->requestId,
|
||||
$this->config,
|
||||
$this->csrfTokenManager,
|
||||
$this->stream
|
||||
])
|
||||
->getMock();
|
||||
|
||||
$this->assertTrue($request->passesCSRFCheck());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue