Im Februar wurde in der Discourse 2.4-Veröffentlichung die Funktion „Secure Uploads" eingeführt, die ein höheres Maß an Sicherheit für ALLE Uploads (Bilder, Videos, Audiodateien, Text, PDFs, ZIPs und andere) innerhalb einer Discourse-Instanz bietet.
Voraussetzungen
Sie müssen S3-Uploads auf Ihrer Site aktiviert haben, wofür folgende Einstellungen ausgefüllt sein müssen:
- S3 Access Key ID
- S3 Secret Access Key
- S3 Region
- S3 Upload Bucket
Zusätzlich müssen Sie einen S3-Bucket verwenden, der keine öffentliche Bucket-Richtlinie (Public Bucket Policy) hat, und Sie müssen sicherstellen, dass alle vorhandenen Uploads eine öffentliche Lese-ACL (public-read S3 ACL) besitzen. Weitere Informationen finden Sie im Abschnitt „Secure Uploads aktivieren" unten.
Nachdem diese Voraussetzungen erfüllt sind, können Sie die Site-Einstellung „secure uploads" aktivieren.
Secure Uploads aktivieren
HIER GIBT ES DRACHEN
![]()
Dies ist eine erweiterte Funktion, und der Support außerhalb unseres Enterprise-Tarifs wird bestenfalls begrenzt sein. Aktivieren Sie Secure Uploads nur, wenn Sie ein erfahrener Benutzer sind.
Um Secure Uploads zu aktivieren, müssen Sie die folgenden Schritte ausführen:
- Stellen Sie sicher, dass S3-Uploads konfiguriert sind.
- Notieren Sie sich, ob Ihr S3-Bucket eine öffentliche Bucket-Richtlinie hat. Falls ja, ist ein zusätzlicher Schritt erforderlich (Schritt 4).
- Führen Sie den Rake-Task
uploads:sync_s3_aclsaus. Dadurch wird sichergestellt, dass alle Ihre Uploads die korrekte ACL in S3 haben. Dies ist wichtig; wenn Sie Schritt 4 vor diesem Schritt ausführen, können einige Uploads auf Ihrem Forum unzugänglich werden. - Entfernen Sie die öffentliche Bucket-Richtlinie aus Ihrem Bucket, falls sie in Schritt 1 vorhanden war.
- Aktivieren Sie die Site-Einstellung „secure uploads". Optional können Sie auch die Site-Einstellung „prevent anons from downloading files" aktivieren, um zu verhindern, dass anonyme Benutzer Anhänge aus öffentlichen Beiträgen herunterladen. Alle Uploads ab diesem Zeitpunkt können je nach den unten genannten Bedingungen als sicher markiert werden.
- Wenn Sie möchten, dass alle Uploads rückwirkend analysiert und ggf. als sicher markiert werden, führen Sie den Rake-Task
uploads:secure_upload_analyse_and_updateaus.
Hinweis zur S3-Bucket-Richtlinie 
Sie müssen sicherstellen, dass der Bucket, in den Sie hochladen, keine öffentliche Bucket-Richtlinie hat. Eine öffentliche Bucket-Richtlinie sieht ungefähr so aus:
{
"Version": "2012-10-17",
"Id": "ComputedBucketPolicy",
"Statement": [
{
"Sid": "AllowWorldRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
Der wichtige Teil hier ist, dass wir * das Erhalten von Objekten (GetObject) erlauben, was bedeutet, dass jeder alles im Bucket herunterladen darf. Dieses Label zeigt auch an, ob die Richtlinie öffentlich ist:
Die Einstellungen hier sollten nicht geändert werden. Abgebildet ist der ideale Zustand für den Reiter „Block public access":
Was es bewirkt
Sobald Sie Secure Uploads aktiviert haben, wird jede über den Composer hochgeladene Datei basierend auf den folgenden Kriterien entweder als sicher oder als nicht sicher markiert:
- Wenn Sie die Site-Einstellung „login required" aktiviert haben, werden alle Uploads als sicher markiert, und anonyme Benutzer können nicht darauf zugreifen.
- Wenn Sie etwas innerhalb einer persönlichen Nachricht hochladen, wird dies als sicher markiert.
- Wenn Sie etwas innerhalb eines Themas hochladen, das sich in einer privaten Kategorie befindet, wird dies als sicher markiert.
Der Upload in S3 hat eine private ACL, sodass direkte Links zur Datei in S3 einen 403-Fehler (Zugriff verweigert) auslösen. Jeder und alle Zugriffe auf sichere Uploads erfolgen über eine S3-presigned URL. Dies wird für Ihre Benutzer jedoch verborgen sein; wenn ein Upload sicher ist, erfolgt jeder Verweis darauf über die Discourse-URL /secure-uploads/.
Berechtigungen und Zugriffskontrolle
Die URL /secure-uploads/ ermittelt, ob der aktuelle Benutzer auf das Medium zugreifen darf, und liefert es, falls ja. Beim Erstellen des Uploads wird der Beitrag, in dem er erstmals erscheint, als sein „Zugriffskontroll-Beitrag" festgelegt, und alle Berechtigungen basieren auf diesem Beitrag.
- Wenn Sie die Site-Einstellung „login required" aktiviert haben, erhalten anonyme Benutzer beim Zugriff auf die URL immer einen 404-Fehler.
- Wenn Sie auf Medien zugreifen, deren Zugriffskontroll-Beitrag eine persönliche Nachricht ist, muss der Benutzer Teil dieses persönlichen Nachrichtenthemas sein, um auf das Medium zugreifen zu können; andernfalls erhält der Benutzer einen 403-Fehler.
- Wenn Sie auf Medien zugreifen, deren Zugriffskontroll-Beitrag sich in einem Thema innerhalb einer privaten Kategorie befindet, muss der Benutzer Zugriff auf diese Kategorie haben, um auf das Medium zugreifen zu können; andernfalls erhält der Benutzer einen 403-Fehler.
Das Kopieren von /secure-uploads/-URLs zwischen Beiträgen und Themen ist unratsam, da verschiedene Benutzer unterschiedliche Zugriffsebenen in Ihren Discourse-Foren haben. Neue Uploads sollten immer über den Composer erstellt werden. Oneboxes und direkt verlinkte Bilder beachten ebenfalls die Regeln für sichere Uploads. Site-Einstellungen, Emojis und Theme-Uploads sind nicht von sicheren Uploads betroffen, da diese öffentlich sein müssen.
Wenn ein Zugriffskontroll-Beitrag gelöscht wird, ist der angehängte Upload nicht mehr zugänglich. ![]()
Verschieben von Beiträgen mit sicheren Uploads
Wenn Sie einen „Zugriffskontroll-Beitrag" zwischen verschiedenen Sicherheitskontexten verschieben, kann der angehängte Upload möglicherweise als sicher oder nicht sicher geändert werden. Dies sind die Situationen, die die Sicherheit eines Uploads ändern können:
- Ändern einer Themenkategorie. Durchläuft alle Beiträge im Thema und aktualisiert den Sicherheitsstatus der Uploads entsprechend.
- Ändern eines Themas zwischen einem öffentlichen Thema und einer persönlichen Nachricht. Führt dasselbe wie oben aus.
- Verschieben von Beiträgen von einem Thema in ein neues oder bestehendes anderes Thema. Führt dasselbe wie oben im Zielthema aus.
Sichere Uploads in E-Mails
Das Einbetten sicherer Bilder in E-Mails ist standardmäßig aktiviert. Sie können diese Site-Einstellungen für weitere Kontrolle konfigurieren:
secure_uploads_allow_embed_images_in_emails: Deaktivieren Sie dies, um sichere Bilder in E-Mails zu entfernen.secure_uploads_max_email_embed_image_size_kb: Die Obergrenze für die Größe des sicheren Bildes, das wir einbetten, standardmäßig 1 MB, damit die E-Mail nicht zu groß wird. Maximum ist 10 MB. Funktioniert zusammen mitemail_total_attachment_size_limit_kb.
Die sicheren Bilder werden als E-Mail-Anhänge hinzugefügt und unter Verwendung des cid:-URL-Formats eingebettet, da die Unterstützung von Base64-URLs in E-Mail-Clients noch unzuverlässig ist.
Wenn Sie secure_uploads_allow_embed_images_in_emails nicht aktiviert haben oder wenn die Bilder die Größenbeschränkungen überschreiten, sehen Sie anstelle sicherer Bilder Folgendes (auch sichere Audio- und Videodateien, die nicht eingebettet sind):
![]()
Gehostete Kunden
Derzeit ist Secure Uploads nur für unsere Enterprise-Pläne verfügbar. Bitte kontaktieren Sie uns für weitere Details.


ADVANCED thing, not for the faint of
, and there is a limit to how much we will support it outside our enterprise tier. Bring your own expertise…
