Skip to content

Commit 23613ed

Browse files
committed
add liberal content security policy, add isset check for client_name in registrations
1 parent d5745cf commit 23613ed

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

solid/lib/Controller/StorageController.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
use OCP\IURLGenerator;
1717
use OCP\IUserManager;
1818

19+
use OCP\AppFramework\Http\EmptyContentSecurityPolicy;
20+
1921
use Pdsinterop\Solid\Auth\WAC;
2022
use Pdsinterop\Solid\Resources\Server as ResourceServer;
2123

@@ -333,7 +335,9 @@ public function handleRequest($userId, $path) {
333335
$allowedOrigins = array();
334336
foreach ($allowedClients as $clientId) {
335337
$clientRegistration = $this->config->getClientRegistration($clientId);
336-
$allowedOrigins[] = $clientRegistration['client_name'];
338+
if (isset($clientRegistration['client_name'])) {
339+
$allowedOrigins[] = $clientRegistration['client_name'];
340+
}
337341
}
338342
if (!$this->WAC->isAllowed($request, $webId, $origin, $allowedOrigins)) {
339343
$response = $this->resourceServer->getResponse()
@@ -424,7 +428,19 @@ private function respond($response) {
424428
// $result->addHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
425429
// $result->addHeader('Access-Control-Allow-Origin', $origin);
426430

427-
$result->setStatus($statusCode);
431+
$policy = new EmptyContentSecurityPolicy();
432+
$policy->addAllowedStyleDomain("*");
433+
$policy->addAllowedStyleDomain("data:");
434+
$policy->addAllowedScriptDomain("*");
435+
$policy->addAllowedImageDomain("*");
436+
$policy->addAllowedFontDomain("*");
437+
$policy->addAllowedConnectDomain("*");
438+
$policy->allowInlineStyle(true);
439+
$policy->allowInlineScript(true);
440+
$policy->allowEvalScript(true);
441+
$result->setContentSecurityPolicy($policy);
442+
443+
$result->setStatus($statusCode);
428444
return $result;
429445
}
430446
}

0 commit comments

Comments
 (0)