Middleware: Add CSP Report Only support (#58074)
* Middleware: Add CSP Report Only support * Update docs/sources/setup-grafana/configure-grafana/_index.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update docs/sources/setup-grafana/configure-grafana/_index.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update csp documentation wording * Update conf/sample.ini Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * Update docs/sources/setup-grafana/configure-grafana/_index.md Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * Update docs/sources/setup-grafana/configure-grafana/_index.md Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * Update docs/sources/setup-grafana/configure-grafana/_index.md Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * Update pkg/middleware/csp.go Co-authored-by: Dave Henderson <dave.henderson@grafana.com> Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
This commit is contained in:
co-authored by
Christopher Moyer
Dave Henderson
parent
aea860a3bd
commit
f254a37d35
+16
-2
@@ -263,7 +263,11 @@ type Cfg struct {
|
||||
// CSPEnabled toggles Content Security Policy support.
|
||||
CSPEnabled bool
|
||||
// CSPTemplate contains the Content Security Policy template.
|
||||
CSPTemplate string
|
||||
CSPTemplate string
|
||||
// CSPReportEnabled toggles Content Security Policy Report Only support.
|
||||
CSPReportOnlyEnabled bool
|
||||
// CSPReportOnlyTemplate contains the Content Security Policy Report Only template.
|
||||
CSPReportOnlyTemplate string
|
||||
AngularSupportEnabled bool
|
||||
|
||||
TempDataLifetime time.Duration
|
||||
@@ -1285,9 +1289,19 @@ func readSecuritySettings(iniFile *ini.File, cfg *Cfg) error {
|
||||
cfg.StrictTransportSecurityMaxAge = security.Key("strict_transport_security_max_age_seconds").MustInt(86400)
|
||||
cfg.StrictTransportSecurityPreload = security.Key("strict_transport_security_preload").MustBool(false)
|
||||
cfg.StrictTransportSecuritySubDomains = security.Key("strict_transport_security_subdomains").MustBool(false)
|
||||
cfg.AngularSupportEnabled = security.Key("angular_support_enabled").MustBool(true)
|
||||
cfg.CSPEnabled = security.Key("content_security_policy").MustBool(false)
|
||||
cfg.CSPTemplate = security.Key("content_security_policy_template").MustString("")
|
||||
cfg.AngularSupportEnabled = security.Key("angular_support_enabled").MustBool(true)
|
||||
cfg.CSPReportOnlyEnabled = security.Key("content_security_policy_report_only").MustBool(false)
|
||||
cfg.CSPReportOnlyTemplate = security.Key("content_security_policy_report_only_template").MustString("")
|
||||
|
||||
if cfg.CSPEnabled && cfg.CSPTemplate == "" {
|
||||
return fmt.Errorf("enabling content_security_policy requires a content_security_policy_template configuration")
|
||||
}
|
||||
|
||||
if cfg.CSPReportOnlyEnabled && cfg.CSPReportOnlyTemplate == "" {
|
||||
return fmt.Errorf("enabling content_security_policy_report_only requires a content_security_policy_report_only_template configuration")
|
||||
}
|
||||
|
||||
// read data source proxy whitelist
|
||||
DataProxyWhiteList = make(map[string]bool)
|
||||
|
||||
Reference in New Issue
Block a user