Content-Moderation mit Transloadit automatisieren (NSFW)
Sicherheit muss in der heutigen Zeit bei allen Entwicklern an erster Stelle stehen. Leider haben nicht alle Nutzer gute Absichten bei ihren Datei-Uploads, und es ist wichtig, Maßnahmen zu ergreifen, um mit solchen Dateien umzugehen. Heute werfen wir einen Blick auf mehrere Ansätze, mit denen Sie verhindern können, dass verschiedene Arten schädlicher Dateien Ihre Server und Endnutzer erreichen.
Warum ist Content-Moderation wichtig?
Content-Moderation ist für jedes Online-Geschäft entscheidend. Nutzer möchten nicht ungewollt mit drastischen Inhalten konfrontiert werden, und Werbetreibende möchten nicht daneben erscheinen. Wirksame Content-Moderation schützt sowohl Ihre Marke als auch Ihre Nutzer, doch ein Vollzeit-Team aus Content-Moderatoren einzustellen kann teuer sein. Transloadit kann dabei helfen, unerwünschte Inhalte und Malware zu erkennen, während Metadaten und Datei-Hashes zusätzliche Signale für Ihren Moderations-Workflow liefern. Diese Prüfungen sind keine Garantie für Sicherheit und auch keine Erlaubnis, eine Datei zu verwenden. Sehen wir uns an, wie das geht 👇
NSFW-Inhalte automatisch ablehnen
Mit unserem Robot /image/describe können Sie eine Liste von Tags auf Basis des bereitgestellten Bildes erzeugen und anschließend Dateien herausfiltern, die Tags wie Gewaltdarstellungen, Hasssymbole oder Nacktheit enthalten.
Die vollständige Liste der bereitgestellten Tags finden Sie sowohl bei AWS als auch bei GCP.
Labels der Anbieter können sich ändern. Bevor Sie sich auf diesen Filter verlassen, prüfen Sie die
Ausgabe von /image/describe für repräsentative Testbilder mithilfe von
format: "json" in einer separaten diagnostischen Assembly. Richten Sie Ihren Filter
an den tatsächlich zurückgegebenen Labels aus und verwenden Sie dann
format: "meta" für die unten stehende Filter-Pipeline.
Sehen wir uns nun ein Template an, das dies verwendet:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"described": {
"use": ":original",
"robot": "/image/describe",
"explicit_descriptions": true,
"format": "meta",
"granularity": "list",
"provider": "aws"
},
"filtered": {
"use": "described",
"robot": "/file/filter",
"result": true,
"declines": [
["${file.meta.descriptions}", "includes", "Hate Symbols"],
["${file.meta.descriptions}", "includes", "Explicit Nudity"],
["${file.meta.descriptions}", "includes", "Visually Disturbing"]
],
"error_msg": "One file contains explicit content!",
"error_on_decline": true
}
}
}
Hier erzeugen wir eine Liste von Deskriptoren für unser Bild, und wenn unser Filter eine unserer Hauptkategorien in dieser Liste erkennt, wird die Datei abgelehnt und unsere Assembly gestoppt. Veröffentlichen Sie die gefilterten Ergebnisse erst, nachdem die Assembly erfolgreich war, und nicht den ursprünglichen Upload. Automatische Labels können Inhalte übersehen oder akzeptable Bilder markieren; wählen Sie Kategorien und Regeln für die menschliche Prüfung daher passend zu den Anforderungen Ihrer Anwendung.
Urheberrechts-Metadaten prüfen
Anhand von Metadaten lässt sich nicht feststellen, ob eine hochladende Person die Berechtigung hat, ein Bild zu verwenden. Urheberrechtsangaben können fehlen, entfernt worden oder falsch sein, und ein Urheberrechtshinweis allein macht einen Upload nicht unbefugt. Das Verbergen einer Metadatenprüfung ist keine Sicherheitskontrolle.
Das folgende Template zeigt ausschließlich einen Metadatenfilter: Dateien mit einem nicht leeren Urheberrechtsfeld werden aus seinen Ergebnissen ausgeschlossen, während Dateien ohne dieses Feld den Filter passieren. Wenn eine Datei den Filter passiert, bedeutet das keine urheberrechtliche Freigabe. Halten Sie Berechtigungsprüfungen und jede erforderliche menschliche Prüfung von diesem Beispiel getrennt; verwenden Sie es nicht als automatisches Urheberrechtsurteil.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"filter": {
"use": ":original",
"robot": "/file/filter",
"result": true,
"accepts": [["${file.meta.copyright}", "empty", ""]],
"error_on_decline": false
}
}
}
Malware erkennen
Das Letzte, was Ihre Nutzer hochladen sollen, ist natürlich Malware. Ob sie nun andere Nutzer oder Ihre systemkritischen Maschinen erreicht: Es ist wichtig, dass Viren so früh wie möglich gestoppt werden.
Unser Robot /file/virusscan erkennt Malware für Sie und bricht die Assembly ab, wenn ein Scan eine Bedrohung erkennt. Geben Sie Ergebnisse erst nach einem erfolgreichen Scan frei. Ein Scan verringert das Risiko, kann aber nicht garantieren, dass eine Datei harmlos ist; behalten Sie Ihre übrigen Upload-Kontrollen bei. Aktuelle Verfügbarkeit und Gebühren finden Sie in der Robot-Dokumentation und unter Preise.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"virus_scanned": {
"use": ":original",
"robot": "/file/virusscan",
"result": true,
"error_on_decline": true
}
}
}
Bekannte Dateien ausschließen
Falls ein Nutzer tausendfach dieselbe Datei hochlädt und diese aus dem einen oder anderen Grund Ihre übrigen Verteidigungsebenen passiert, können Sie den Datei-Hash nehmen und ihn einer Denylist hinzufügen. Das folgende Beispiel lehnt eine leere Datei anhand ihres SHA-256-Digests ab. Ersetzen Sie diesen Digest für Ihre eigene Richtlinie durch den SHA-256 einer bekannten unerwünschten Datei. Wenn sich die Bytes einer Datei ändern, ändert sich auch ihr Hash; eine Denylist mit exakter Übereinstimmung erkennt daher keine veränderten Kopien.
Hier ist ein Template, das genau das erreichen soll.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"hash_files": {
"use": ":original",
"robot": "/file/hash",
"algorithm": "sha256"
},
"filter_files": {
"use": "hash_files",
"robot": "/file/filter",
"result": true,
"error_on_decline": true,
"declines": [["${file.meta.hash}", "===", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]]
}
}
}
Kurz gesagt: Wir erzeugen für jede hochgeladene Datei einen Hash. Stimmt er mit dem Hash einer Datei überein, die wir vermeiden möchten, passiert die Datei den Filter nicht.
Fazit
Wie Sie sehen, gibt es mehrere Ansätze, um Datei-Uploads zu überprüfen. Kombinieren Sie passende Prüfungen mit Zugriffskontrollen, sicherer Speicherung und menschlicher Prüfung, anstatt sich auf ein einzelnes Signal zu verlassen.
Wir arbeiten bei Transloadit ständig daran, die Dinge sicherer zu machen. Werfen Sie als Nächstes vielleicht einen Blick auf unsere Sicherheitsseite, um einige der Schritte zu sehen, die wir dafür unternehmen.
