Skip to content

[SECURITY] Externe Links gegen window.opener und unsichere Ziel-URLs absichern #524

Description

@ralferlebach

Problem

Frontend-Code öffnet Links mit window.open(..., "_blank") beziehungsweise target="_blank", ohne durchgängig noopener und noreferrer zu setzen. Bei manipulierbaren Ziel-URLs kann die geöffnete Seite auf das Ursprungsfenster zugreifen.

Ursache

Die Linkerzeugung ist über mehrere Komponenten verteilt und besitzt keine zentrale Sicherheitsregel.

Lösung

  • Alle neuen Fenster mit noopener,noreferrer öffnen.
  • URLs serverseitig oder zentral validieren.
  • Interne URLs über Moodle-generierte URLs bereitstellen.
  • Direkte window.open-Aufrufe kapseln.

Manuelles Testverfahren

Testschritte

  1. Externen Testlink öffnen und im Ziel prüfen, dass window.opener nicht verfügbar ist.
  2. Ungültige Protokolle wie javascript: müssen abgewiesen werden.

Aktuelles Ist-Verhalten

Frontend-Code öffnet Links mit window.open(..., "_blank") beziehungsweise target="_blank", ohne durchgängig noopener und noreferrer zu setzen. Bei manipulierbaren Ziel-URLs kann die geöffnete Seite auf das Ursprungsfenster zugreifen.

Erwartetes Soll-Verhalten

Kein externer Tab erhält Zugriff auf das Moodle-Fenster.

Automatisierte Tests

  • JavaScript-Unit-Test für URL-Validierung und Open-Optionen.
  • Statischer CI-Check für ungesicherte _blank-Links.

Akzeptanzkriterien

  • Kein externer Tab erhält Zugriff auf das Moodle-Fenster.
  • Nur erlaubte URL-Schemata werden geöffnet.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions