protected function buildHeaders(ResponseInterface &$response)
	{
		// Ensure both headers are available and arrays...
		$response->setHeader('Content-Security-Policy', []);
		$response->setHeader('Content-Security-Policy-Report-Only', []);

		$directives = [
			'base-uri'        => 'baseURI',
			'child-src'       => 'childSrc',
			'connect-src'     => 'connectSrc',
			'default-src'     => 'defaultSrc',
			'font-src'        => 'fontSrc',
			'form-action'     => 'formAction',
			'frame-ancestors' => 'frameAncestors',
			'img-src'         => 'imageSrc',
			'media-src'       => 'mediaSrc',
			'object-src'      => 'objectSrc',
			'plugin-types'    => 'pluginTypes',
			'script-src'      => 'scriptSrc',
			'style-src'       => 'styleSrc',
			'manifest-src'    => 'manifestSrc',
			'sandbox'         => 'sandbox',
			'report-uri'      => 'reportURI',
		];

		// inject default base & default URIs if needed
		if (empty($this->baseURI))
		{
			$this->baseURI = 'self';
		}
		if (empty($this->defaultSrc))
		{
			$this->defaultSrc = 'self';
		}

		foreach ($directives as $name => $property)
		{
			// base_uri
			if (! empty($this->{$property}))
			{
				$this->addToHeader($name, $this->{$property});
			}
		}

		// Compile our own header strings here since if we just
		// append it to the response, it will be joined with
		// commas, not semi-colons as we need.
		if (! empty($this->tempHeaders))
		{
			$header = '';
			foreach ($this->tempHeaders as $name => $value)
			{
				$header .= " {$name} {$value};";
			}
			// add token only if needed
			if ($this->upgradeInsecureRequests)
			{
				$header .= ' upgrade-insecure-requests;';
			}

			$response->appendHeader('Content-Security-Policy', $header);
		}

		if (! empty($this->reportOnlyHeaders))
		{
			$header = '';
			foreach ($this->reportOnlyHeaders as $name => $value)
			{
				$header .= " {$name} {$value};";
			}
			$response->appendHeader('Content-Security-Policy-Report-Only', $header);
		}

		$this->tempHeaders       = [];
		$this->reportOnlyHeaders = [];
	}
protected function buildHeaders(ResponseInterface &$response)
	{
		// Ensure both headers are available and arrays...
		$response->setHeader('Content-Security-Policy', []);
		$response->setHeader('Content-Security-Policy-Report-Only', []);

		$directives = [
			'base-uri'        => 'baseURI',
			'child-src'       => 'childSrc',
			'connect-src'     => 'connectSrc',
			'default-src'     => 'defaultSrc',
			'font-src'        => 'fontSrc',
			'form-action'     => 'formAction',
			'frame-ancestors' => 'frameAncestors',
			'img-src'         => 'imageSrc',
			'media-src'       => 'mediaSrc',
			'object-src'      => 'objectSrc',
			'plugin-types'    => 'pluginTypes',
			'script-src'      => 'scriptSrc',
			'style-src'       => 'styleSrc',
			'manifest-src'    => 'manifestSrc',
			'sandbox'         => 'sandbox',
			'report-uri'      => 'reportURI',
		];

		// inject default base & default URIs if needed
		if (empty($this->baseURI))
		{
			$this->baseURI = 'self';
		}
		if (empty($this->defaultSrc))
		{
			$this->defaultSrc = 'self';
		}

		foreach ($directives as $name => $property)
		{
			// base_uri
			if (! empty($this->{$property}))
			{
				$this->addToHeader($name, $this->{$property});
			}
		}

		// Compile our own header strings here since if we just
		// append it to the response, it will be joined with
		// commas, not semi-colons as we need.
		if (! empty($this->tempHeaders))
		{
			$header = '';
			foreach ($this->tempHeaders as $name => $value)
			{
				$header .= " {$name} {$value};";
			}
			// add token only if needed
			if ($this->upgradeInsecureRequests)
			{
				$header .= ' upgrade-insecure-requests;';
			}

			$response->appendHeader('Content-Security-Policy', $header);
		}

		if (! empty($this->reportOnlyHeaders))
		{
			$header = '';
			foreach ($this->reportOnlyHeaders as $name => $value)
			{
				$header .= " {$name} {$value};";
			}
			$response->appendHeader('Content-Security-Policy-Report-Only', $header);
		}

		$this->tempHeaders       = [];
		$this->reportOnlyHeaders = [];
	}
protected function buildHeaders ( ResponseInterface & $ response ) { // Ensure both headers are available and arrays... $ response -> setHeader ( 'Content-Security-Policy' , [ ] ) ; $ response -> setHeader ( 'Content-Security-Policy-Report-Only' , [ ] ) ; $ directives = [ 'base-uri' => 'baseURI' , 'child-src' => 'childSrc' , 'connect-src' => 'connectSrc' , 'default-src' => 'defaultSrc' , 'font-src' => 'fontSrc' , 'form-action' => 'formAction' , 'frame-ancestors' => 'frameAncestors' , 'img-src' => 'imageSrc' , 'media-src' => 'mediaSrc' , 'object-src' => 'objectSrc' , 'plugin-types' => 'pluginTypes' , 'script-src' => 'scriptSrc' , 'style-src' => 'styleSrc' , 'manifest-src' => 'manifestSrc' , 'sandbox' => 'sandbox' , 'report-uri' => 'reportURI' , ] ; // inject default base & default URIs if needed if ( empty ( $ this -> baseURI ) ) { $ this -> baseURI = 'self' ; } if ( empty ( $ this -> defaultSrc ) ) { $ this -> defaultSrc = 'self' ; } foreach ( $ directives as $ name => $ property ) { // base_uri if ( ! empty ( $ this -> { $ property } ) ) { $ this -> addToHeader ( $ name , $ this -> { $ property } ) ; } } // Compile our own header strings here since if we just // append it to the response, it will be joined with // commas, not semi-colons as we need. if ( ! empty ( $ this -> tempHeaders ) ) { $ header = '' ; foreach ( $ this -> tempHeaders as $ name => $ value ) { $ header .= " {$name} {$value};" ; } // add token only if needed if ( $ this -> upgradeInsecureRequests ) { $ header .= ' upgrade-insecure-requests;' ; } $ response -> appendHeader ( 'Content-Security-Policy' , $ header ) ; } if ( ! empty ( $ this -> reportOnlyHeaders ) ) { $ header = '' ; foreach ( $ this -> reportOnlyHeaders as $ name => $ value ) { $ header .= " {$name} {$value};" ; } $ response -> appendHeader ( 'Content-Security-Policy-Report-Only' , $ header ) ; } $ this -> tempHeaders = [ ] ; $ this -> reportOnlyHeaders = [ ] ; }
Based on the current state of the elements, will add the appropriate
Content-Security-Policy and Content-Security-Policy-Report-Only headers
with their values to the response object.

@param ResponseInterface|\CodeIgniter\HTTP\Response $response
Based on the current state of the elements will add the appropriate Content - Security - Policy and Content - Security - Policy - Report - Only headers with their values to the response object .