Wie kann ich sicherstellen, dass ein Bild tatsächlich von meinem richtigen Nutzer stammt?
Das Backend Ihrer Anwendung muss den Benutzer authentifizieren und den Upload autorisieren. Bewahren Sie das Transloadit Auth Secret auf diesem vertrauenswürdigen Backend auf. Leiten Sie die zulässigen Instructions aus der authentifizierten Sitzung ab; wenn Sie eine vom Browser übermittelte Benutzer-ID ungeprüft signieren, wird diese dadurch nicht verifiziert.
Signature Authentication schützt genau die Bytes des serialisierten params-Strings. Bei gewöhnlichen signierten Anfragen macht eine Änderung von params.fields nach dem Signieren die Signatur ungültig. Separate Multipart-Felder oder die Bytes hochgeladener Dateien werden nicht signiert. Ein später folgendes, nicht signiertes Multipart-Feld kann in den zusammengeführten Assembly-Feldern ein gleichnamiges signiertes Feld ersetzen. Daher wird das endgültige fields.user_id nicht dadurch vertrauenswürdig, dass Sie params.fields.user_id signieren.
Aktivieren Sie Signature Authentication für Ihren Workspace, wenn Sie signierte Browser-Anfragen akzeptieren. Geben Sie ein kurzlebiges auth.expires an und geben Sie die ursprünglichen serialisierten params zusammen mit ihrer Signatur zurück. Das Ablaufdatum begrenzt das Zeitfenster für eine Wiederverwendung; es garantiert keine einmalige Verwendung. Bei der Erstellung einer Assembly können identische signierte params vor dem Ablauf wiederverwendet werden, auch params mit einer nonce. Eine kopierte Anfrage beweist nicht, dass ihr Absender noch angemeldet ist. Eine gültige Bearer-Authentifizierung erfüllt die Signaturanforderung, ohne eine mitgesendete Signatur zu prüfen; schützen Sie Bearer-Tokens entsprechend ihrem jeweiligen Scope.
Für eine von Ihrer Anwendung kontrollierte Zuordnung erstellen Sie die Assembly von Ihrem vertrauenswürdigen Backend aus und speichern die zurückgegebene assembly_id zusammen mit dem authentifizierten Benutzer. Folgen Sie dem Leitfaden für fortsetzbare Uploads, damit der Client Dateien in diese bestehende Assembly hochladen kann, und halten Sie den Upload-Zugang zu dieser Assembly privat. Dies ist eine andere Integration als das Transloadit-Plugin von Uppy, das die Assembly mithilfe von assemblyOptions aus dem Browser heraus erstellt.
Prüfen Sie den Assembly Status anhand des Datensatzes, der Ihrer Anwendung gehört, bevor Sie Zugriff auf Ergebnisse gewähren. Bei Webhooks verifizieren Sie zuerst die Signatur der Zustellung und prüfen dann deren Assembly ID anhand dieses Datensatzes. Leiten Sie die Eigentümerschaft nicht aus zurückgegebenen Feldern oder aus einer von einem Client behaupteten Assembly ID ab. Damit wird der Upload festgehalten, den Ihre Anwendung autorisiert hat; es wird jedoch weder festgestellt, wer das Bild erstellt hat, noch der Inhalt der hochgeladenen Bytes nachgewiesen.