![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/soundstudiopro.com/public_html/ |
<?php
/**
* Security Protection Documentation Page
* Professional page explaining our MP3 protection measures
* Requires authentication to view
*/
require_once 'config/database.php';
require_once 'includes/translations.php';
session_start();
$user_id = $_SESSION['user_id'] ?? null;
// Require authentication to view security documentation
if (!$user_id) {
header('Location: /auth/login.php?redirect=' . urlencode('/protection.php'));
exit;
}
// Get user info
$pdo = getDBConnection();
$stmt = $pdo->prepare("SELECT name, plan FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
$currentLang = getCurrentLanguage();
$pageTitle = $currentLang === 'fr' ? 'Protocoles de sécurité et de protection' : 'Security & Protection Protocols';
// Set page title for header
$page_title = $pageTitle . ' - Sound Studio Pro';
// Custom styles for protection page - Modern Professional Design
$page_custom_styles = '
body {
padding-top: 0;
min-height: 100vh;
background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
}
.protection-hero {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #4facfe 100%);
padding: 6rem 2rem 4rem;
text-align: center;
position: relative;
overflow: hidden;
margin-bottom: 4rem;
}
.protection-hero::before {
content: \'\';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url("data:image/svg+xml,%3Csvg width=\'60\' height=\'60\' viewBox=\'0 0 60 60\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg fill=\'none\' fill-rule=\'evenodd\'%3E%3Cg fill=\'%23ffffff\' fill-opacity=\'0.05\'%3E%3Cpath d=\'M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z\'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
opacity: 0.3;
}
.protection-hero-content {
position: relative;
z-index: 1;
max-width: 800px;
margin: 0 auto;
}
.protection-hero h1 {
font-size: clamp(2.5rem, 6vw, 4rem);
font-weight: 800;
color: #ffffff;
margin: 0 0 1.5rem 0;
line-height: 1.2;
text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.protection-hero p {
font-size: clamp(1.1rem, 2.5vw, 1.4rem);
color: rgba(255, 255, 255, 0.95);
margin: 0;
line-height: 1.6;
}
.protection-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem 4rem;
}
.protection-intro {
background: linear-gradient(145deg, rgba(26, 26, 26, 0.95) 0%, rgba(35, 35, 45, 0.9) 100%);
border: 1px solid rgba(102, 126, 234, 0.2);
border-radius: 24px;
padding: 3rem;
margin-bottom: 3rem;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.protection-intro p {
font-size: 1.15rem;
line-height: 1.8;
color: var(--text-secondary);
margin: 0 0 1.5rem 0;
}
.protection-intro .info-badge {
display: inline-flex;
align-items: center;
gap: 0.75rem;
background: rgba(79, 172, 254, 0.15);
border: 1px solid rgba(79, 172, 254, 0.3);
border-radius: 12px;
padding: 1rem 1.5rem;
color: var(--accent);
font-size: 0.95rem;
}
.protection-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
}
.protection-card {
background: linear-gradient(145deg, rgba(26, 26, 26, 0.95) 0%, rgba(35, 35, 45, 0.9) 100%);
border: 1px solid rgba(102, 126, 234, 0.2);
border-radius: 20px;
padding: 2.5rem;
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
position: relative;
overflow: hidden;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.protection-card::before {
content: \'\';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #4facfe 100%);
opacity: 0;
transition: opacity 0.3s ease;
}
.protection-card:hover {
transform: translateY(-8px);
border-color: rgba(102, 126, 234, 0.5);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 8px 40px rgba(102, 126, 234, 0.2);
}
.protection-card:hover::before {
opacity: 1;
}
.protection-card-icon {
width: 64px;
height: 64px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.8rem;
margin-bottom: 1.5rem;
box-shadow: 0 8px 24px rgba(102, 126, 234, 0.3);
}
.protection-card h3 {
font-size: 1.5rem;
font-weight: 700;
color: var(--text-primary);
margin: 0 0 1rem 0;
line-height: 1.3;
}
.protection-card p {
color: var(--text-secondary);
line-height: 1.7;
margin: 0 0 1.5rem 0;
font-size: 0.95rem;
}
.protection-features {
list-style: none;
padding: 0;
margin: 0;
}
.protection-features li {
display: flex;
align-items: flex-start;
gap: 0.75rem;
padding: 0.75rem 0;
color: var(--text-secondary);
font-size: 0.9rem;
line-height: 1.6;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.protection-features li:last-child {
border-bottom: none;
}
.protection-features li::before {
content: \'✓\';
color: #10b981;
font-weight: bold;
font-size: 1.1rem;
flex-shrink: 0;
margin-top: 0.1rem;
}
.protection-features li strong {
color: var(--text-primary);
}
.comparison-section {
background: linear-gradient(145deg, rgba(26, 26, 26, 0.95) 0%, rgba(35, 35, 45, 0.9) 100%);
border: 1px solid rgba(102, 126, 234, 0.2);
border-radius: 24px;
padding: 3rem;
margin-bottom: 3rem;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.comparison-section h2 {
font-size: 2rem;
font-weight: 700;
color: var(--text-primary);
margin: 0 0 2rem 0;
text-align: center;
}
.comparison-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
background: rgba(15, 15, 25, 0.5);
border-radius: 16px;
overflow: hidden;
}
.comparison-table thead {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.comparison-table th {
padding: 1.25rem 1.5rem;
text-align: left;
color: #ffffff;
font-weight: 600;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.comparison-table th:first-child {
border-top-left-radius: 16px;
}
.comparison-table th:last-child {
border-top-right-radius: 16px;
}
.comparison-table td {
padding: 1.25rem 1.5rem;
color: var(--text-secondary);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
font-size: 0.95rem;
}
.comparison-table tbody tr:last-child td {
border-bottom: none;
}
.comparison-table tbody tr:hover {
background: rgba(102, 126, 234, 0.1);
}
.comparison-table tbody tr td:first-child {
font-weight: 600;
color: var(--text-primary);
}
.status-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
border-radius: 8px;
font-size: 0.85rem;
font-weight: 600;
}
.status-badge.success {
background: rgba(16, 185, 129, 0.15);
color: #10b981;
border: 1px solid rgba(16, 185, 129, 0.3);
}
.status-badge.danger {
background: rgba(239, 68, 68, 0.15);
color: #ef4444;
border: 1px solid rgba(239, 68, 68, 0.3);
}
.best-practices {
background: linear-gradient(145deg, rgba(26, 26, 26, 0.95) 0%, rgba(35, 35, 45, 0.9) 100%);
border: 1px solid rgba(102, 126, 234, 0.2);
border-radius: 24px;
padding: 3rem;
margin-bottom: 3rem;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.best-practices h2 {
font-size: 2rem;
font-weight: 700;
color: var(--text-primary);
margin: 0 0 1.5rem 0;
}
.best-practices-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
margin-top: 2rem;
}
.practice-item {
display: flex;
align-items: flex-start;
gap: 1rem;
padding: 1.5rem;
background: rgba(15, 15, 25, 0.5);
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.05);
transition: all 0.3s ease;
}
.practice-item:hover {
background: rgba(15, 15, 25, 0.7);
border-color: rgba(102, 126, 234, 0.3);
transform: translateX(4px);
}
.practice-icon {
width: 40px;
height: 40px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
flex-shrink: 0;
}
.practice-content h4 {
font-size: 1rem;
font-weight: 600;
color: var(--text-primary);
margin: 0 0 0.5rem 0;
}
.practice-content p {
font-size: 0.9rem;
color: var(--text-secondary);
margin: 0;
line-height: 1.6;
}
.protection-footer {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #4facfe 100%);
border-radius: 24px;
padding: 4rem 3rem;
text-align: center;
position: relative;
overflow: hidden;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}
.protection-footer::before {
content: \'\';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url("data:image/svg+xml,%3Csvg width=\'60\' height=\'60\' viewBox=\'0 0 60 60\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg fill=\'none\' fill-rule=\'evenodd\'%3E%3Cg fill=\'%23ffffff\' fill-opacity=\'0.05\'%3E%3Cpath d=\'M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z\'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
opacity: 0.3;
}
.protection-footer-content {
position: relative;
z-index: 1;
}
.protection-footer h2 {
font-size: 2.5rem;
font-weight: 800;
color: #ffffff;
margin: 0 0 1rem 0;
text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.protection-footer p {
font-size: 1.1rem;
color: rgba(255, 255, 255, 0.95);
margin: 0 0 1.5rem 0;
line-height: 1.6;
}
.protection-footer .last-updated {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.8);
margin: 0;
}
@media (max-width: 768px) {
.protection-hero {
padding: 4rem 1.5rem 3rem;
}
.protection-container {
padding: 0 1rem 3rem;
}
.protection-grid {
grid-template-columns: 1fr;
gap: 1.5rem;
}
.protection-card,
.comparison-section,
.best-practices,
.protection-intro {
padding: 2rem 1.5rem;
}
.comparison-table {
font-size: 0.85rem;
}
.comparison-table th,
.comparison-table td {
padding: 1rem;
}
.best-practices-grid {
grid-template-columns: 1fr;
}
}
';
// Include header
include 'includes/header.php';
?>
<div class="protection-hero">
<div class="protection-hero-content">
<h1>🔒 <?= $currentLang === 'fr' ? 'Protection de votre musique' : 'Your Music is Protected' ?></h1>
<p><?= $currentLang === 'fr' ? 'Système de sécurité multicouche avancé pour protéger vos créations musicales' : 'Advanced multi-layer security system protecting your musical creations' ?></p>
</div>
</div>
<div class="protection-container">
<!-- Introduction -->
<div class="protection-intro">
<p><?= $currentLang === 'fr' ? 'Votre musique est protégée par un système de sécurité sophistiqué multicouche qui empêche l\'accès non autorisé, le partage et le téléchargement. Nos mesures de sécurité fonctionnent ensemble pour garantir que seuls les utilisateurs autorisés peuvent accéder à vos pistes via des canaux légitimes.' : 'Your music is protected by a sophisticated multi-layer security system that prevents unauthorized access, sharing, and downloading. Our security measures work together to ensure that only authorized users can access your tracks through legitimate channels.' ?></p>
<div class="info-badge">
<span>🔐</span>
<span><?= $currentLang === 'fr' ? 'Documentation privée - Accessible uniquement aux utilisateurs authentifiés' : 'Private Documentation - Only accessible to authenticated users' ?></span>
</div>
</div>
<!-- Security Layers Grid -->
<div class="protection-grid">
<!-- Layer 1 -->
<div class="protection-card">
<div class="protection-card-icon">🔑</div>
<h3><?= $currentLang === 'fr' ? 'Authentification par jeton signé' : 'Signed Token Authentication' ?></h3>
<p><?= $currentLang === 'fr' ? 'Chaque URL audio est protégée par un jeton cryptographique unique lié à votre piste et votre session.' : 'Every audio URL is protected by a unique cryptographic token bound to your track and session.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Liaison à la piste :' : 'Track Binding:' ?></strong> <?= $currentLang === 'fr' ? 'Ne peut pas être utilisé pour d\'autres pistes' : 'Cannot be used for other tracks' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Expiration :' : 'Expiration:' ?></strong> <?= $currentLang === 'fr' ? '5 minutes pour limiter les risques' : '5 minutes to limit exposure' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Signature sécurisée :' : 'Secure Signature:' ?></strong> <?= $currentLang === 'fr' ? 'Infalsifiable et cryptographiquement sécurisé' : 'Unforgeable and cryptographically secure' ?></li>
</ul>
</div>
<!-- Layer 2 -->
<div class="protection-card">
<div class="protection-card-icon">🔗</div>
<h3><?= $currentLang === 'fr' ? 'Liaison session et utilisateur' : 'Session & User Binding' ?></h3>
<p><?= $currentLang === 'fr' ? 'Les jetons sont liés à votre compte et votre session pour empêcher le partage entre navigateurs.' : 'Tokens are bound to your account and session to prevent sharing across browsers.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Protection inter-navigateurs :' : 'Cross-Browser Protection:' ?></strong> <?= $currentLang === 'fr' ? 'Ne fonctionne pas dans un autre navigateur' : 'Won\'t work in another browser' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Protection inter-sessions :' : 'Cross-Session Protection:' ?></strong> <?= $currentLang === 'fr' ? 'Invalide après déconnexion' : 'Invalid after logout' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Protection utilisateur :' : 'User Protection:' ?></strong> <?= $currentLang === 'fr' ? 'Un jeton ne fonctionne que pour son propriétaire' : 'Token only works for its owner' ?></li>
</ul>
</div>
<!-- Layer 3 -->
<div class="protection-card">
<div class="protection-card-icon">🚫</div>
<h3><?= $currentLang === 'fr' ? 'Validation de l\'origine' : 'Origin Validation' ?></h3>
<p><?= $currentLang === 'fr' ? 'L\'accès direct par URL est bloqué. Seules les pages autorisées peuvent générer des liens valides.' : 'Direct URL access is blocked. Only authorized pages can generate valid links.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Blocage direct :' : 'Direct Blocking:' ?></strong> <?= $currentLang === 'fr' ? 'Les URL collées directement sont rejetées' : 'Pasted URLs are rejected' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Pages autorisées :' : 'Authorized Pages:' ?></strong> <?= $currentLang === 'fr' ? 'Seulement depuis notre site web' : 'Only from our website' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Protection partage :' : 'Sharing Protection:' ?></strong> <?= $currentLang === 'fr' ? 'Les liens partagés ne fonctionnent pas' : 'Shared links don\'t work' ?></li>
</ul>
</div>
<!-- Layer 4 -->
<div class="protection-card">
<div class="protection-card-icon">⏱️</div>
<h3><?= $currentLang === 'fr' ? 'Utilisation unique' : 'One-Time Use' ?></h3>
<p><?= $currentLang === 'fr' ? 'Chaque jeton ne peut être utilisé qu\'une seule fois, empêchant le rafraîchissement et la réutilisation.' : 'Each token can only be used once, preventing refresh and reuse.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Consommation immédiate :' : 'Immediate Consumption:' ?></strong> <?= $currentLang === 'fr' ? 'Utilisé au premier chargement' : 'Used on first load' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Blocage rafraîchissement :' : 'Refresh Blocking:' ?></strong> <?= $currentLang === 'fr' ? 'Aucun rafraîchissement autorisé' : 'No refreshes allowed' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Suivi session :' : 'Session Tracking:' ?></strong> <?= $currentLang === 'fr' ? 'Suivi en temps réel de l\'utilisation' : 'Real-time usage tracking' ?></li>
</ul>
</div>
<!-- Layer 5 -->
<div class="protection-card">
<div class="protection-card-icon">⏰</div>
<h3><?= $currentLang === 'fr' ? 'Expiration temporelle' : 'Time-Based Expiration' ?></h3>
<p><?= $currentLang === 'fr' ? 'Tous les jetons expirent automatiquement après 5 minutes, limitant la fenêtre d\'opportunité.' : 'All tokens automatically expire after 5 minutes, limiting the opportunity window.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Durée limitée :' : 'Limited Duration:' ?></strong> <?= $currentLang === 'fr' ? '5 minutes maximum' : '5 minutes maximum' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Rejet automatique :' : 'Automatic Rejection:' ?></strong> <?= $currentLang === 'fr' ? 'Les jetons expirés sont rejetés' : 'Expired tokens are rejected' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Aucune extension :' : 'No Extension:' ?></strong> <?= $currentLang === 'fr' ? 'Impossible de prolonger un jeton' : 'Cannot extend a token' ?></li>
</ul>
</div>
<!-- Layer 6 -->
<div class="protection-card">
<div class="protection-card-icon">🎵</div>
<h3><?= $currentLang === 'fr' ? 'Gestion intelligente' : 'Smart Playback' ?></h3>
<p><?= $currentLang === 'fr' ? 'Le système différencie les requêtes pour garantir une lecture fluide tout en maintenant la sécurité.' : 'The system differentiates requests to ensure smooth playback while maintaining security.' ?></p>
<ul class="protection-features">
<li><strong><?= $currentLang === 'fr' ? 'Lecture fluide :' : 'Smooth Playback:' ?></strong> <?= $currentLang === 'fr' ? 'Aucune interruption pendant la lecture' : 'No interruptions during playback' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Support recherche :' : 'Seeking Support:' ?></strong> <?= $currentLang === 'fr' ? 'Recherche audio complète' : 'Full audio seeking' ?></li>
<li><strong><?= $currentLang === 'fr' ? 'Mise en mémoire tampon :' : 'Buffering:' ?></strong> <?= $currentLang === 'fr' ? 'Mise en mémoire tampon optimale' : 'Optimal buffering' ?></li>
</ul>
</div>
</div>
<!-- Security Comparison -->
<div class="comparison-section">
<h2><?= $currentLang === 'fr' ? 'Comparaison de sécurité' : 'Security Comparison' ?></h2>
<table class="comparison-table">
<thead>
<tr>
<th><?= $currentLang === 'fr' ? 'Vecteur d\'attaque' : 'Attack Vector' ?></th>
<th><?= $currentLang === 'fr' ? 'Sans protection' : 'Without Protection' ?></th>
<th><?= $currentLang === 'fr' ? 'Avec notre protection' : 'With Our Protection' ?></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Partage direct d\'URL' : 'Direct URL Sharing' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Accès inter-navigateurs' : 'Cross-Browser Access' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Réutilisation de jeton' : 'Token Reuse' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Falsification d\'URL' : 'URL Tampering' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Utilisation de jeton expiré' : 'Expired Token Use' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Accès inter-pistes' : 'Cross-Track Access' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
<tr>
<td><strong><?= $currentLang === 'fr' ? 'Téléchargement en masse' : 'Bulk Downloading' ?></strong></td>
<td><span class="status-badge danger">❌ <?= $currentLang === 'fr' ? 'Vulnérable' : 'Vulnerable' ?></span></td>
<td><span class="status-badge success">✅ <?= $currentLang === 'fr' ? 'Bloqué' : 'Blocked' ?></span></td>
</tr>
</tbody>
</table>
</div>
<!-- Best Practices -->
<div class="best-practices">
<h2><?= $currentLang === 'fr' ? 'Meilleures pratiques pour les artistes' : 'Best Practices for Artists' ?></h2>
<p style="color: var(--text-secondary); line-height: 1.8; margin-bottom: 2rem;"><?= $currentLang === 'fr' ? 'Tout ce que vous devez savoir sur la protection de votre musique :' : 'Everything you need to know about protecting your music:' ?></p>
<div class="best-practices-grid">
<div class="practice-item">
<div class="practice-icon">🛡️</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Protection automatique' : 'Automatic Protection' ?></h4>
<p><?= $currentLang === 'fr' ? 'Toutes vos pistes sont automatiquement protégées par ces mesures de sécurité' : 'All your tracks are automatically protected by these security measures' ?></p>
</div>
</div>
<div class="practice-item">
<div class="practice-icon">⚡</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Toujours actif' : 'Always Active' ?></h4>
<p><?= $currentLang === 'fr' ? 'La sécurité est intégrée et fonctionne en permanence' : 'Security is built-in and always working' ?></p>
</div>
</div>
<div class="practice-item">
<div class="practice-icon">🔒</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Public et privé' : 'Public & Private' ?></h4>
<p><?= $currentLang === 'fr' ? 'Les pistes publiques et privées utilisent les mêmes mesures' : 'Public and private tracks use the same measures' ?></p>
</div>
</div>
<div class="practice-item">
<div class="practice-icon">🚫</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Partage bloqué' : 'Sharing Blocked' ?></h4>
<p><?= $currentLang === 'fr' ? 'Les URL ne peuvent pas être partagées ou réutilisées' : 'URLs cannot be shared or reused' ?></p>
</div>
</div>
<div class="practice-item">
<div class="practice-icon">🎧</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Lecture fluide' : 'Smooth Playback' ?></h4>
<p><?= $currentLang === 'fr' ? 'La sécurité n\'interfère pas avec l\'expérience de lecture' : 'Security doesn\'t interfere with playback experience' ?></p>
</div>
</div>
<div class="practice-item">
<div class="practice-icon">👥</div>
<div class="practice-content">
<h4><?= $currentLang === 'fr' ? 'Transparent pour les auditeurs' : 'Transparent for Listeners' ?></h4>
<p><?= $currentLang === 'fr' ? 'Vos auditeurs ne remarqueront aucune différence' : 'Your listeners won\'t notice any difference' ?></p>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="protection-footer">
<div class="protection-footer-content">
<h2><?= $currentLang === 'fr' ? '🛡️ Votre musique est protégée' : '🛡️ Your Music is Protected' ?></h2>
<p><?= $currentLang === 'fr' ? 'Plusieurs couches de sécurité fonctionnent ensemble pour garantir que votre musique ne peut pas être volée, partagée ou accessible sans autorisation.' : 'Multiple layers of security work together to ensure your music cannot be stolen, shared, or accessed without authorization.' ?></p>
<p class="last-updated"><strong><?= $currentLang === 'fr' ? 'Dernière mise à jour :' : 'Last Updated:' ?></strong> <?= date('F j, Y') ?></p>
</div>
</div>
</div>
<?php include 'includes/footer.php'; ?>