deploy: Produktions-Update 2026-01-16 - Accessibility & Bug Fixes

This commit is contained in:
TheOnlyMace
2026-01-16 23:55:37 +01:00
parent aad6c3ea8a
commit 98c408efd8
6 changed files with 7 additions and 74 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -3,34 +3,6 @@
* Helper functions for HexaHost.de
*/
// Security Headers setzen (nur wenn noch nicht gesendet)
if (!headers_sent()) {
// Schutz vor Clickjacking
header('X-Frame-Options: DENY');
// Schutz vor MIME-Type-Sniffing
header('X-Content-Type-Options: nosniff');
// XSS-Schutz für ältere Browser
header('X-XSS-Protection: 1; mode=block');
// Referrer-Policy für Privatsphäre
header('Referrer-Policy: strict-origin-when-cross-origin');
// Permissions-Policy (ehemals Feature-Policy)
header("Permissions-Policy: geolocation=(), microphone=(), camera=()");
// Content-Security-Policy (angepasst für die verwendeten Ressourcen)
$csp = "default-src 'self'; ";
$csp .= "script-src 'self' 'unsafe-inline'; ";
$csp .= "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; ";
$csp .= "font-src 'self' https://fonts.gstatic.com; ";
$csp .= "img-src 'self' https://cdn.hexahost.de data:; ";
$csp .= "connect-src 'self'; ";
$csp .= "frame-ancestors 'none';";
header("Content-Security-Policy: " . $csp);
}
// Sichere Session-Konfiguration
if (session_status() === PHP_SESSION_NONE) {
// Session-Cookie-Sicherheit

View File

@@ -45,47 +45,8 @@
<?php if (isset($canonical_url)): ?>
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
<?php endif; ?>
<!-- Open Graph Bild -->
<meta property="og:image" content="https://cdn.hexahost.de/assets/img/og-image.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="HexaHost.de - Zuverlässiges Hosting aus Niederbayern">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="<?php echo isset($page_title) ? htmlspecialchars($page_title) : 'HexaHost.de'; ?>">
<meta name="twitter:description" content="<?php echo isset($page_description) ? htmlspecialchars($page_description) : 'Zuverlässiges Hosting aus Niederbayern'; ?>">
<meta name="twitter:image" content="https://cdn.hexahost.de/assets/img/og-image.jpg">
<!-- Structured Data (JSON-LD) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "HexaHost.de",
"url": "https://hexahost.de",
"logo": "https://cdn.hexahost.de/assets/img/logo/8iFs123BynHQWHI5.png",
"description": "Zuverlässiges und preiswertes Hosting aus Niederbayern - VPS, VPC, Mail Gateway und Webhosting",
"address": {
"@type": "PostalAddress",
"addressRegion": "Bayern",
"addressCountry": "DE"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"availableLanguage": ["German"],
"areaServed": "DE"
},
"sameAs": []
}
</script>
</head>
<body>
<!-- Skip to main content (Accessibility) -->
<a href="#main-content" class="skip-link">Zum Hauptinhalt springen</a>
<header class="header">
<nav class="nav">
<div class="nav-container">
@@ -94,7 +55,7 @@
<img src="https://cdn.hexahost.de/assets/img/logo/8iFs123BynHQWHI5.png" alt="HexaHost.de Logo" class="logo-image">
</a>
</div>
<ul class="nav-menu" id="nav-menu" role="menubar">
<ul class="nav-menu">
<li><a href="/" class="nav-link <?php echo ($current_page === 'home') ? 'active' : ''; ?>">Home</a></li>
<li class="nav-dropdown">
<a href="#" class="nav-link <?php echo (in_array($current_page, ['vpc', 'vps', 'mail-gateway', 'webhosting'])) ? 'active' : ''; ?>">Produkte</a>
@@ -108,11 +69,11 @@
<li><a href="/about" class="nav-link <?php echo ($current_page === 'about') ? 'active' : ''; ?>">Über uns</a></li>
<li><a href="/contact" class="nav-link <?php echo ($current_page === 'contact') ? 'active' : ''; ?>">Kontakt</a></li>
</ul>
<button class="nav-toggle" aria-label="Menü öffnen" aria-expanded="false" aria-controls="nav-menu">
<div class="nav-toggle">
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
</header>