mirror of
				https://git.code.sf.net/p/seeddms/code
				synced 2025-10-31 05:11:27 +00:00 
			
		
		
		
	add hook getCspRules() in htmlStartPage()
This commit is contained in:
		
							parent
							
								
									359be28912
								
							
						
					
					
						commit
						ae08602e68
					
				|  | @ -58,18 +58,21 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { | ||||||
| 			 * Content-Security-Policy since version 23+ | 			 * Content-Security-Policy since version 23+ | ||||||
| 			 * 'worker-src blob:' is needed for cytoscape | 			 * 'worker-src blob:' is needed for cytoscape | ||||||
| 			 */ | 			 */ | ||||||
| 			$csp_rules = ''; | 			$csp_rules = []; | ||||||
| 			$csp_rules .= "script-src 'self' 'unsafe-eval'"; | 			$csp_rule = "script-src 'self' 'unsafe-eval'"; | ||||||
| 			if($this->nonces) { | 			if($this->nonces) { | ||||||
| 				$csp_rules .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; | 				$csp_rule .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; | ||||||
| 			} | 			} | ||||||
| 			$csp_rules .= ";"; | 			$csp_rules[] = $csp_rule; | ||||||
| 			$csp_rules .= " worker-src blob:;"; | 			$csp_rules[] = "worker-src blob:"; | ||||||
| 			//$csp_rules .= "style-src 'self';";
 | 			//$csp_rules[] = "style-src 'self'";
 | ||||||
| 			/* Do not allow to embed myself into frames on foreigns pages */ | 			/* Do not allow to embed myself into frames on foreigns pages */ | ||||||
| 			$csp_rules .= " frame-ancestors 'self';"; | 			$csp_rules[] = "frame-ancestors 'self'"; | ||||||
|  | 			if($this->hasHook('getCspRules')) { | ||||||
|  | 				$csp_rules = $this->callHook('getCspRules', $csp_rules); | ||||||
|  | 			} | ||||||
| 			foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) { | 			foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) { | ||||||
| 				header($csp . ": " . $csp_rules); | 				header($csp . ": " . implode('; ', $csp_rules).';'); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		header('X-Content-Type-Options: nosniff'); | 		header('X-Content-Type-Options: nosniff'); | ||||||
|  |  | ||||||
|  | @ -58,18 +58,21 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { | ||||||
| 			 * Content-Security-Policy since version 23+ | 			 * Content-Security-Policy since version 23+ | ||||||
| 			 * 'worker-src blob:' is needed for cytoscape | 			 * 'worker-src blob:' is needed for cytoscape | ||||||
| 			 */ | 			 */ | ||||||
| 			$csp_rules = ''; | 			$csp_rules = []; | ||||||
| 			$csp_rules .= "script-src 'self' 'unsafe-eval'"; | 			$csp_rule = "script-src 'self' 'unsafe-eval'"; | ||||||
| 			if($this->nonces) { | 			if($this->nonces) { | ||||||
| 				$csp_rules .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; | 				$csp_rule .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; | ||||||
| 			} | 			} | ||||||
| 			$csp_rules .= ";"; | 			$csp_rules[] = $csp_rule; | ||||||
| 			$csp_rules .= " worker-src blob:;"; | 			$csp_rules[] = "worker-src blob:"; | ||||||
| 			//$csp_rules .= "style-src 'self';";
 | 			//$csp_rules[] = "style-src 'self'";
 | ||||||
| 			/* Do not allow to embed myself into frames on foreigns pages */ | 			/* Do not allow to embed myself into frames on foreigns pages */ | ||||||
| 			$csp_rules .= " frame-ancestors 'self';"; | 			$csp_rules[] = "frame-ancestors 'self'"; | ||||||
|  | 			if($this->hasHook('getCspRules')) { | ||||||
|  | 				$csp_rules = $this->callHook('getCspRules', $csp_rules); | ||||||
|  | 			} | ||||||
| 			foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) { | 			foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) { | ||||||
| 				header($csp . ": " . $csp_rules); | 				header($csp . ": " . implode('; ', $csp_rules).';'); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		header('X-Content-Type-Options: nosniff'); | 		header('X-Content-Type-Options: nosniff'); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Uwe Steinmann
						Uwe Steinmann