Merge branch 'hookableCSP-mr' into 'dev'
Hookable csp mr See merge request hubzilla/core!1225
This commit is contained in:
commit
e000d98cc5
31
boot.php
31
boot.php
@ -2234,8 +2234,35 @@ function construct_page() {
|
||||
if(App::get_scheme() === 'https' && App::$config['system']['transport_security_header'])
|
||||
header("Strict-Transport-Security: max-age=31536000");
|
||||
|
||||
if(App::$config['system']['content_security_policy'])
|
||||
header("Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'");
|
||||
if(App::$config['system']['content_security_policy']) {
|
||||
$cspsettings = Array (
|
||||
'script-src' => Array ("'self'","'unsafe-inline'","'unsafe-eval'"),
|
||||
'style-src' => Array ("'self'","'unsafe-inline'")
|
||||
);
|
||||
call_hooks('content_security_policy',$cspsettings);
|
||||
|
||||
// Legitimate CSP directives (cxref: https://content-security-policy.com/)
|
||||
$validcspdirectives=Array(
|
||||
"default-src", "script-src", "style-src",
|
||||
"img-src", "connect-src", "font-src",
|
||||
"object-src", "media-src", 'frame-src',
|
||||
'sandbox', 'report-uri', 'child-src',
|
||||
'form-action', 'frame-ancestors', 'plugin-types'
|
||||
);
|
||||
$cspheader = "Content-Security-Policy:";
|
||||
foreach ($cspsettings as $cspdirective => $csp) {
|
||||
if (!in_array($cspdirective,$validcspdirectives)) {
|
||||
logger("INVALID CSP DIRECTIVE: ".$cspdirective,LOGGER_DEBUG);
|
||||
continue;
|
||||
}
|
||||
$cspsettingsarray=array_unique($cspsettings[$cspdirective]);
|
||||
$cspsetpolicy = implode(' ',$cspsettingsarray);
|
||||
if ($cspsetpolicy) {
|
||||
$cspheader .= " ".$cspdirective." ".$cspsetpolicy.";";
|
||||
}
|
||||
}
|
||||
header($cspheader);
|
||||
}
|
||||
|
||||
if(App::$config['system']['x_security_headers']) {
|
||||
header("X-Frame-Options: SAMEORIGIN");
|
||||
|
Reference in New Issue
Block a user