Exportierte Berichte-Anhänge (ich habe es mit konsolidierten Seitenaufrufen getestet) sind nicht als sicher markiert, obwohl die Datei eine private ACL hat, was den Download verhindert, da die Kurz-URL auf einen unsignierten Link verwies. Nach Ausführung der uploads:secure_upload_analyse_and_update Rake-Task wurde sie ordnungsgemäß als sicher markiert (es gab 3 weitere Beiträge/5 Uploads, die ebenfalls gefunden wurden, aber ich konnte nicht feststellen, um welche es sich handelte).
Können Sie bitte erläutern, was Sie mit „angehängter exportierter Bericht“ meinen? Screenshot?
Entschuldigung, ich beziehe mich auf die ZIP-Datei, die im PM verlinkt ist, da der Export abgeschlossen ist.
Das ist seltsam, wenn ich das auf einer sicheren Medienseite versuche, wird der Upload korrekt als sicher markiert. Können Sie den Upload-Datensatz nach erneutem Versuch wie folgt anzeigen?
#<Upload:0x0000556ae80c5208
id: 532362,
user_id: 1436,
original_filename: "consolidated-page-views-220318-031153-54.zip",
filesize: 480,
width: nil,
height: nil,
url: "//blah.zip",
created_at: Fri, 18 Mar 2022 03:11:53.556489000 UTC +00:00,
updated_at: Fri, 18 Mar 2022 03:11:53.842038000 UTC +00:00,
sha1: "12345",
origin: nil,
retain_hours: nil,
extension: "zip",
thumbnail_width: nil,
thumbnail_height: nil,
etag: "12345",
secure: true,
access_control_post_id: 377702,
original_sha1: "12345",
verification_status: 1,
animated: nil,
security_last_changed_at: Fri, 18 Mar 2022 03:11:53.836860000 UTC +00:00,
security_last_changed_reason: "login is required | source: post creator">
Ist Ihre Website-Anmeldung erforderlich?
Es ist kein Login erforderlich
#<Upload:0x000055646d495a30
id: 62749,
user_id: 1,
original_filename: "web-crawlers-220318-032906-26.zip",
filesize: 3017,
width: nil,
height: nil,
url:
"//[nope].storage.googleapis.com/original/3X/6/7/679649f9c6d33541cf5f5d2c48c2ef514bde36a0.zip",
created_at: Fri, 18 Mar 2022 03:29:07.114686000 UTC +00:00,
updated_at: Fri, 18 Mar 2022 03:29:07.328592000 UTC +00:00,
sha1: "679649f9c6d33541cf5f5d2c48c2ef514bde36a0",
origin: nil,
retain_hours: nil,
extension: "zip",
thumbnail_width: nil,
thumbnail_height: nil,
etag: "54f0df6d95a84d04877aa20f238c3b1e",
secure: false,
access_control_post_id: 214238,
original_sha1: "5cc4f437505ae3a07bdd27bbe2653462de31db6d",
verification_status: 1,
animated: nil,
security_last_changed_at: Fri, 18 Mar 2022 03:29:07.112534000 UTC +00:00,
security_last_changed_reason: "no checks satisfied | source: upload creator">
Unsere secure_media-Site-Einstellung wird nur gegen AWS S3 validiert. Das könnte das Problem sein.
Das ist der seltsame Teil:
security_last_changed_reason: "no checks satisfied | source: upload creator"
Für mich, mit login_required false und secure_media true in meinen Website-Einstellungen, erhalte ich dies, wenn ich einen Bericht exportiere und er mir per PM zugesendet wird:
security_last_changed_reason: "access control post dictates security | source: post creator"
Das ergibt Sinn, da der Ersteller des Beitrags für die PM den Anhang hat und zu diesem Zeitpunkt auf secure: true gesetzt werden sollte. Sie haben eine access_control_post_id für diesen Upload-Datensatz, aber es scheint nicht richtig funktioniert zu haben?
Was passiert, wenn Sie Post.find(214238).with_secure_media? ausführen?
Ich glaube nicht, dass das einen Einfluss haben sollte, das würde nur ACLs betreffen, denke ich.
Gilt dies nicht für alle potenziell sicheren Uploads? Da Beiträge in privaten Themen und anderen PMs dieses Problem nicht haben, bin ich mir da nicht sicher.
=> true
Hmm… Ich bin mir nicht sicher, was hier passiert ist.
So strange, if I add a breakpoint inside PostCreator (which is called from the export job) I get a similar result to yours at first for the upload:
secure: false,
access_control_post_id: 67115,
...
security_last_changed_at: Fri, 18 Mar 2022 04:14:42.292485000 UTC +00:00,
security_last_changed_reason: "no checks satisfied | source: upload creator"
But then as soon as the PostCreator update of the secure status occurs everything is fine:
secure: true,
access_control_post_id: 67115,
...
security_last_changed_at: Fri, 18 Mar 2022 04:14:55.645303000 UTC +00:00,
security_last_changed_reason: "access control post dictates security | source: post creator"
Does Discourse.store.external? return true for you?
def update_uploads_secure_status(source:)
if Discourse.store.external?
Jobs.enqueue(:update_post_uploads_secure_status, post_id: self.id, source: source)
end
end
Das tut es, ich sehe keine laufenden oder geplanten Jobs in Sidekiq, daher gehe ich davon aus, dass es entweder fehlgeschlagen ist oder nie ausgeführt wurde.
Ich bin so verwirrt
Gibt es auf Ihrer /logs-Seite etwas, das damit zusammenhängt? Es scheint, dass dies nur passieren könnte, wenn der Sidekiq-Job update_post_uploads_secure_status fehlschlägt oder auf irgendeine Weise einen Fehler verursacht.
Es gab ein paar Fehler, aber sie hingen alle mit dem CleanUpUploads-Job zusammen. Nach weiteren Untersuchungen scheint es, dass der Job nie ausgeführt wurde (es gab in den letzten 2 Tagen keine fehlgeschlagenen Jobs).
Es tut mir leid, ich kann dies nicht reproduzieren, daher gibt es im Moment nicht viel mehr, was wir damit tun können.
