fix: add security exception to allow S3 media

This commit is contained in:
2025-09-29 18:58:14 +04:00
parent 5bbc6f1c66
commit 006194fcdb
3 changed files with 38 additions and 0 deletions
+4
View File
@@ -48,6 +48,10 @@ if (!defined('MASTODON_BTN_RELOAD')) define('MASTODON_BTN_RELOAD', 'Rafraichir')
if (!defined('MASTODON_MAX_POST_FETCH')) define('MASTODON_MAX_POST_FETCH', '10'); if (!defined('MASTODON_MAX_POST_FETCH')) define('MASTODON_MAX_POST_FETCH', '10');
if (!defined('MASTODON_MAX_POST_SHOW')) define('MASTODON_MAX_POST_SHOW', '10'); if (!defined('MASTODON_MAX_POST_SHOW')) define('MASTODON_MAX_POST_SHOW', '10');
// URL du stockage S3 pour les médias Mastodon (laissez vide pour désactiver)
// Format: https://votre-bucket.s3.region.provider.com
if (!defined('MASTODON_S3_MEDIA_URL')) define('MASTODON_S3_MEDIA_URL', 'https://s3.eu-central-003.backblazeb2.com');
// Informations du site // Informations du site
if (!defined('SITE_NAME')) define('SITE_NAME', 'kaubuntu.re'); if (!defined('SITE_NAME')) define('SITE_NAME', 'kaubuntu.re');
if (!defined('SITE_DESCRIPTION')) define('SITE_DESCRIPTION', 'Votre plateforme de médias libres'); if (!defined('SITE_DESCRIPTION')) define('SITE_DESCRIPTION', 'Votre plateforme de médias libres');
+5
View File
@@ -210,6 +210,11 @@ define('PRIORITY_CATEGORIES', [
// Nombre maximum de posts à afficher // Nombre maximum de posts à afficher
// define('MASTODON_MAX_POST_SHOW', '10'); // define('MASTODON_MAX_POST_SHOW', '10');
// URL du stockage S3 pour les médias Mastodon (optionnel)
// Format: https://votre-bucket.s3.region.provider.com
// Laissez vide ou commentez pour désactiver
// define('MASTODON_S3_MEDIA_URL', 'https://s3.eu-central-003.backblazeb2.com');
// ========================================= // =========================================
// Contact // Contact
// ========================================= // =========================================
+29
View File
@@ -247,6 +247,35 @@ function setSecurityHeaders() {
} }
$csp .= "connect-src " . $connectSrc . "; "; $csp .= "connect-src " . $connectSrc . "; ";
// Médias : toujours autoriser 'self', Mastodon et PeerTube
$mediaSrc = "'self'";
// Ajouter l'instance Mastodon (pour les médias stockés sur l'instance)
if ($mastodonDomain) {
$mediaSrc .= " " . $mastodonDomain;
}
// Ajouter PeerTube
if ($peertubeDomain) {
$mediaSrc .= " " . $peertubeDomain;
}
// Ajouter l'URL S3 Mastodon si configurée (pour les médias externalisés)
if (defined('MASTODON_S3_MEDIA_URL') && !empty(MASTODON_S3_MEDIA_URL)) {
$s3Parsed = parse_url(MASTODON_S3_MEDIA_URL);
if ($s3Parsed && isset($s3Parsed['host'])) {
$s3Domain = $s3Parsed['scheme'] . '://' . $s3Parsed['host'];
$mediaSrc .= " " . $s3Domain;
}
}
if ($isLocalDev) {
$mediaSrc .= " https: http:";
} else {
$mediaSrc .= " https:";
}
$csp .= "media-src " . $mediaSrc . "; ";
$csp .= "object-src 'none'; "; $csp .= "object-src 'none'; ";
$csp .= "base-uri 'self';"; $csp .= "base-uri 'self';";