Ist es sicher, HTML-Uploads zuzulassen? (2023)

Die Diskussion fortgesetzt von Ist es sicher, HTML-Uploads zuzulassen?:

Antworten im Thread waren von der Form “Warum sollte man das jemals wollen?”. Ich habe eine Antwort.

Unser Forum widmet sich der Entwicklung von webbasierten Spielen. Ich möchte, dass unsere Benutzer ihre Spiele über das Forum untereinander verteilen können. (Aber nicht, wenn dies einen XSS-Angriff verursacht.)

Solange hochgeladene HTML-Dateien immer “Content-Disposition: attachment” haben (wie es scheint), bin ich mir keines XSS-Angriffs bewusst, den dies ermöglichen würde, oder auch nur eines neuartigen Phishing-Angriffs. Links zur HTML-Datei werden dazu zwingen, sie herunterzuladen, nicht direkt auf der Website des Forums zu öffnen.

(Ich bemerke, dass Gmail Benutzern erlaubt, HTML-Dateianhänge herunterzuladen; das scheint in Ordnung zu sein.)

Natürlich können Phishing-Angriffe extrem vereinfacht sein. Heute kann jeder auf TL1 einfach eine Direktnachricht an einen Forenbenutzer senden und sagen: “Hallo, ich bin der Administrator dieses Forums. Bitte senden Sie mir Ihr Passwort.” Ebenso können sie bereits eine Website unter evil.example.com erstellen, die so gestaltet ist, dass sie genau wie die Anmeldeseite des Forums aussieht, und sie könnten versuchen, Benutzer dazu zu bringen, auf diesen Link zu klicken und dort ihr Passwort einzugeben.

Ich schätze, sie könnten es auch mit einem Anhang versuchen und sagen: “Hallo, ich betreibe dieses Forum, bitte laden Sie diese Datei herunter und öffnen Sie sie, okay?” und diese Datei könnte eine Nachbildung der Anmeldeseite des Forums enthalten.

Aber das Herunterladen einer HTML-Datei und das Doppelklicken darauf wäre aus Phishing-Sicht nicht gefährlicher als das Zulassen, dass Benutzer auf eine bösartige Website verlinken. Und da es komplizierter ist, wird es wahrscheinlich weniger Benutzer täuschen als das Versenden von Links zu einer Phishing-Seite (der traditionelle Weg).

Also, gibt es hier ein XSS-Risiko? Oder einen subtilen Phishing-Angriff, den ich nicht kenne?