1 | <?php |
||
11 | class ContentSecurityPolicy extends \Zend\Http\Header\ContentSecurityPolicy |
||
12 | { |
||
13 | public const KEY_CSP = 'csp'; |
||
14 | |||
15 | public const DIRECTIVE_DEFAULT_SRC = 'default-src'; |
||
16 | public const DIRECTIVE_SCRIPT_SRC = 'script-src'; |
||
17 | public const DIRECTIVE_STYLE_SRC = 'style-src'; |
||
18 | public const DIRECTIVE_FONT_SRC = 'font-src'; |
||
19 | public const DIRECTIVE_IMG_SRC = 'img-src'; |
||
20 | public const DIRECTIVE_FRAME_ANCESTORS = 'frame-ancestors'; |
||
21 | public const DIRECTIVE_BASE_URI = 'base-uri'; |
||
22 | public const DIRECTIVE_FORM_ACTION = 'form-action'; |
||
23 | public const DIRECTIVE_CONNECT_SRC = 'connect-src'; |
||
24 | public const DIRECTIVE_REPORT_URI = 'report-uri'; |
||
25 | |||
26 | public const SOURCE_ALL = '*'; |
||
27 | public const SOURCE_SELF = "'self'"; |
||
28 | public const SOURCE_DATA = 'data:'; |
||
29 | |||
30 | // These UNSAFE directives should be avoided |
||
31 | public const SOURCE_UNSAFE_INLINE = "'unsafe-inline'"; |
||
32 | public const SOURCE_UNSAFE_EVAL = "'unsafe-eval'"; |
||
33 | |||
34 | /** |
||
35 | * @var string |
||
36 | */ |
||
37 | private static $nonce; |
||
38 | |||
39 | /** |
||
40 | * ContentSecurityPolicy constructor.* |
||
41 | */ |
||
42 | public function __construct() |
||
46 | |||
47 | /** |
||
48 | * Returns a new nonce for each request. |
||
49 | * |
||
50 | * @return string |
||
51 | */ |
||
52 | public static function getNonce(): string |
||
59 | |||
60 | /** |
||
61 | * Set the needed CSP directives for ZendSentry |
||
62 | */ |
||
63 | public function init(): void |
||
76 | } |