37 lines · 1.1 KB
Raw Download
1
<?php
2
// security.php
3
// Security headers and settings
4
ini_set('display_errors', '0');
5
ini_set('display_startup_errors', '0');
6
error_reporting(E_ALL);
7
ini_set('session.cookie_httponly', 1);
8
ini_set('session.cookie_secure', 1);
9
ini_set('session.cookie_samesite', 'Strict');
10
ini_set('session.use_strict_mode', 1);
11
ini_set('session.use_only_cookies', 1);
12
ini_set('session.gc_maxlifetime', 3600);
13
14
// Set secure headers
15
header("Content-Security-Policy: " . 
16
	"default-src 'self'; " .
17
	"style-src 'self' 'unsafe-inline'; " .
18
	"img-src 'self' data: ; " .
19
	"frame-ancestors 'none'; " .
20
	"form-action 'self';"
21
);
22
header("X-Content-Type-Options: nosniff");
23
header("X-Frame-Options: DENY");
24
header("X-XSS-Protection: 1; mode=block");
25
header("Referrer-Policy: same-origin");
26
header("Permissions-Policy: geolocation=(), camera=(), microphone=()");
27
28
// Set secure cookie parameters
29
ini_set('session.cookie_domain', '');
30
ini_set('session.cookie_path', '/');
31
ini_set('session.cookie_lifetime', 0);
32
33
// Start session if needed
34
if (session_status() === PHP_SESSION_NONE) {
35
	session_start();
36
}
37
?>