|
|
@ -25,19 +25,19 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDefault() { |
|
|
|
public function testGetPolicyDefault() { |
|
|
|
$defaultPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$defaultPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$this->assertSame($defaultPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($defaultPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyScriptDomainValid() { |
|
|
|
public function testGetPolicyScriptDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com;script-src-elem 'strict-dynamic' 'self' www.owncloud.com;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyScriptDomainValidMultiple() { |
|
|
|
public function testGetPolicyScriptDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com www.owncloud.org;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com www.owncloud.org;script-src-elem 'strict-dynamic' 'self' www.owncloud.com www.owncloud.org;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.org'); |
|
|
@ -45,7 +45,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowScriptDomain() { |
|
|
|
public function testGetPolicyDisallowScriptDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.com'); |
|
|
@ -53,7 +53,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowScriptDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowScriptDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' www.owncloud.com;script-src-elem 'strict-dynamic' 'self' www.owncloud.com;style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org'); |
|
|
@ -61,7 +61,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowScriptDomainMultipleStacked() { |
|
|
|
public function testGetPolicyDisallowScriptDomainMultipleStacked() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org')->disallowScriptDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org')->disallowScriptDomain('www.owncloud.com'); |
|
|
@ -69,21 +69,21 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyScriptDisallowEval() { |
|
|
|
public function testGetPolicyScriptDisallowEval() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->allowEvalScript(false); |
|
|
|
$this->contentSecurityPolicy->allowEvalScript(false); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStyleDomainValid() { |
|
|
|
public function testGetPolicyStyleDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStyleDomainValidMultiple() { |
|
|
|
public function testGetPolicyStyleDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' www.owncloud.com www.owncloud.org 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' www.owncloud.com www.owncloud.org 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.org'); |
|
|
@ -91,7 +91,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowStyleDomain() { |
|
|
|
public function testGetPolicyDisallowStyleDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.com'); |
|
|
@ -99,7 +99,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowStyleDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowStyleDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org'); |
|
|
@ -107,7 +107,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowStyleDomainMultipleStacked() { |
|
|
|
public function testGetPolicyDisallowStyleDomainMultipleStacked() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org')->disallowStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org')->disallowStyleDomain('www.owncloud.com'); |
|
|
@ -115,35 +115,35 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStyleAllowInline() { |
|
|
|
public function testGetPolicyStyleAllowInline() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->allowInlineStyle(true); |
|
|
|
$this->contentSecurityPolicy->allowInlineStyle(true); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStyleAllowInlineWithDomain() { |
|
|
|
public function testGetPolicyStyleAllowInlineWithDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStyleDisallowInline() { |
|
|
|
public function testGetPolicyStyleDisallowInline() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->allowInlineStyle(false); |
|
|
|
$this->contentSecurityPolicy->allowInlineStyle(false); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyImageDomainValid() { |
|
|
|
public function testGetPolicyImageDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyImageDomainValidMultiple() { |
|
|
|
public function testGetPolicyImageDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com www.owncloud.org;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com www.owncloud.org;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.org'); |
|
|
@ -151,7 +151,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowImageDomain() { |
|
|
|
public function testGetPolicyDisallowImageDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.com'); |
|
|
@ -159,7 +159,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowImageDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowImageDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob: www.owncloud.com;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org'); |
|
|
@ -167,7 +167,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowImageDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowImageDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org')->disallowImageDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org')->disallowImageDomain('www.owncloud.com'); |
|
|
@ -175,14 +175,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyFontDomainValid() { |
|
|
|
public function testGetPolicyFontDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyFontDomainValidMultiple() { |
|
|
|
public function testGetPolicyFontDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com www.owncloud.org;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com www.owncloud.org;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.org'); |
|
|
@ -190,7 +190,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFontDomain() { |
|
|
|
public function testGetPolicyDisallowFontDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.com'); |
|
|
@ -198,7 +198,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFontDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowFontDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data: www.owncloud.com;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org'); |
|
|
@ -206,7 +206,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFontDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowFontDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org')->disallowFontDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org')->disallowFontDomain('www.owncloud.com'); |
|
|
@ -214,14 +214,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyConnectDomainValid() { |
|
|
|
public function testGetPolicyConnectDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyConnectDomainValidMultiple() { |
|
|
|
public function testGetPolicyConnectDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com www.owncloud.org;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com www.owncloud.org;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.org'); |
|
|
@ -229,7 +229,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowConnectDomain() { |
|
|
|
public function testGetPolicyDisallowConnectDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.com'); |
|
|
@ -237,7 +237,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowConnectDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowConnectDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self' www.owncloud.com;media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org'); |
|
|
@ -245,7 +245,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowConnectDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowConnectDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org')->disallowConnectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org')->disallowConnectDomain('www.owncloud.com'); |
|
|
@ -253,14 +253,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyMediaDomainValid() { |
|
|
|
public function testGetPolicyMediaDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyMediaDomainValidMultiple() { |
|
|
|
public function testGetPolicyMediaDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.org'); |
|
|
@ -268,7 +268,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowMediaDomain() { |
|
|
|
public function testGetPolicyDisallowMediaDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.com'); |
|
|
@ -276,7 +276,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowMediaDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowMediaDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self' www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org'); |
|
|
@ -284,7 +284,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowMediaDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowMediaDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org')->disallowMediaDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org')->disallowMediaDomain('www.owncloud.com'); |
|
|
@ -292,14 +292,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyObjectDomainValid() { |
|
|
|
public function testGetPolicyObjectDomainValid() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyObjectDomainValidMultiple() { |
|
|
|
public function testGetPolicyObjectDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.org'); |
|
|
@ -307,7 +307,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowObjectDomain() { |
|
|
|
public function testGetPolicyDisallowObjectDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.com'); |
|
|
@ -315,7 +315,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowObjectDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowObjectDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';object-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org'); |
|
|
@ -323,7 +323,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowObjectDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowObjectDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org')->disallowObjectDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org')->disallowObjectDomain('www.owncloud.com'); |
|
|
@ -331,14 +331,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetAllowedFrameDomain() { |
|
|
|
public function testGetAllowedFrameDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyFrameDomainValidMultiple() { |
|
|
|
public function testGetPolicyFrameDomainValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com www.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.org'); |
|
|
@ -346,7 +346,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameDomain() { |
|
|
|
public function testGetPolicyDisallowFrameDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.com'); |
|
|
@ -354,7 +354,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowFrameDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org'); |
|
|
@ -362,7 +362,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowFrameDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org')->disallowFrameDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org')->disallowFrameDomain('www.owncloud.com'); |
|
|
@ -370,14 +370,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetAllowedChildSrcDomain() { |
|
|
|
public function testGetAllowedChildSrcDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src child.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src child.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyChildSrcValidMultiple() { |
|
|
|
public function testGetPolicyChildSrcValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src child.owncloud.com child.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src child.owncloud.com child.owncloud.org;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('child.owncloud.org'); |
|
|
@ -385,7 +385,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowChildSrcDomain() { |
|
|
|
public function testGetPolicyDisallowChildSrcDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.com'); |
|
|
@ -393,7 +393,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowChildSrcDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowChildSrcDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';child-src www.owncloud.com;frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org'); |
|
|
@ -401,7 +401,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowChildSrcDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowChildSrcDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com'); |
|
|
@ -411,14 +411,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function testGetAllowedFrameAncestorDomain() { |
|
|
|
public function testGetAllowedFrameAncestorDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' sub.nextcloud.com;form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' sub.nextcloud.com;form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('sub.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('sub.nextcloud.com'); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyFrameAncestorValidMultiple() { |
|
|
|
public function testGetPolicyFrameAncestorValidMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' sub.nextcloud.com foo.nextcloud.com;form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' sub.nextcloud.com foo.nextcloud.com;form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('sub.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('sub.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('foo.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('foo.nextcloud.com'); |
|
|
@ -426,7 +426,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameAncestorDomain() { |
|
|
|
public function testGetPolicyDisallowFrameAncestorDomain() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('www.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('www.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameAncestorDomain('www.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameAncestorDomain('www.nextcloud.com'); |
|
|
@ -434,7 +434,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameAncestorDomainMultiple() { |
|
|
|
public function testGetPolicyDisallowFrameAncestorDomainMultiple() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' www.nextcloud.com;form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self' www.nextcloud.com;form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('www.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedFrameAncestorDomain('www.nextcloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameAncestorDomain('www.nextcloud.org'); |
|
|
|
$this->contentSecurityPolicy->disallowFrameAncestorDomain('www.nextcloud.org'); |
|
|
@ -442,7 +442,7 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyDisallowFrameAncestorDomainMultipleStakes() { |
|
|
|
public function testGetPolicyDisallowFrameAncestorDomainMultipleStakes() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com'); |
|
|
|
$this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com'); |
|
|
@ -450,14 +450,14 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyUnsafeEval() { |
|
|
|
public function testGetPolicyUnsafeEval() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'unsafe-eval';script-src-elem 'strict-dynamic' 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->allowEvalScript(true); |
|
|
|
$this->contentSecurityPolicy->allowEvalScript(true); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyUnsafeWasmEval() { |
|
|
|
public function testGetPolicyUnsafeWasmEval() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'wasm-unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'wasm-unsafe-eval';script-src-elem 'strict-dynamic' 'self' 'wasm-unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->allowEvalWasm(true); |
|
|
|
$this->contentSecurityPolicy->allowEvalWasm(true); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
@ -467,6 +467,15 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
$nonce = 'my-nonce'; |
|
|
|
$nonce = 'my-nonce'; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(false); |
|
|
|
|
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyNonceDefault() { |
|
|
|
|
|
|
|
$nonce = 'my-nonce'; |
|
|
|
|
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'nonce-".base64_encode($nonce) . "';script-src-elem 'strict-dynamic' 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
@ -477,22 +486,23 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamic(true); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamic(true); |
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(false); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyNonceStrictDynamicOnScripts() { |
|
|
|
public function testGetPolicyNonceStrictDynamicDefault() { |
|
|
|
$nonce = 'my-nonce'; |
|
|
|
$nonce = 'my-nonce'; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'nonce-".base64_encode($nonce) . "';script-src-elem 'strict-dynamic' 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'strict-dynamic' 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(true); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamic(true); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testGetPolicyStrictDynamicOnScripts() { |
|
|
|
public function testGetPolicyStrictDynamicOnScriptsOff() { |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';script-src-elem 'strict-dynamic' 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(true); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(false); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -503,17 +513,4 @@ class ContentSecurityPolicyTest extends \Test\TestCase { |
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(true); |
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(true); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* No duplication as we can fallback |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public function testGetPolicyNonceStrictDynamicAndStrictDynamicOnScripts() { |
|
|
|
|
|
|
|
$nonce = 'my-nonce'; |
|
|
|
|
|
|
|
$expectedPolicy = "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'strict-dynamic' 'nonce-".base64_encode($nonce) . "';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self' data:;connect-src 'self';media-src 'self';frame-ancestors 'self';form-action 'self'"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useJsNonce($nonce); |
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useStrictDynamic(true); |
|
|
|
|
|
|
|
$this->contentSecurityPolicy->useStrictDynamicOnScripts(true); |
|
|
|
|
|
|
|
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|