4.13. Koexistenz mit Web-Browsing
4.13. Koexistenz mit Web-Browsing
Auch wenn eine Anwendung nicht für die Verwendung mit einem Webbrowser vorgesehen ist, können ihre Ressourcen von Browsern entweder versehentlich (z. B. durch Fehlkonfiguration) oder böswillig aufgerufen werden. Anwendungen müssen berücksichtigen, wie sie sich in solchen Situationen verhalten werden.
Für Anwendungen, die nicht für die Verwendung mit Browsern vorgesehen sind:
-
Anwendungen SOLLTEN eine geeignete Fehlermeldung zurückgeben (z. B.
403 Forbiddenoder404 Not Found), wenn sie von einem Browser aufgerufen werden. -
Anwendungen SOLLTEN Sicherheits-Header (wie
Content-Security-Policy[CSP],X-Frame-Optionsusw.) einschließen, um einzuschränken, was Browser tun können, wenn sie auf die Anwendung zugreifen. -
Anwendungen SOLLTEN sich browserspezifischen Verhaltens bewusst sein, wie z. B. automatisches Folgen von Weiterleitungen, Ausführung von JavaScript und Durchführung von Prefetch-Anfragen.
Für Anwendungen, die sowohl API-Clients als auch Webbrowser unterstützen sollen:
-
Anwendungen SOLLTEN Content-Negotiation verwenden, um geeignete Darstellungen für verschiedene Clients bereitzustellen.
-
Anwendungen SOLLTEN sicherstellen, dass browserbasierter Zugriff keine Sicherheitslücken schafft (siehe Abschnitt 6).
-
Anwendungen SOLLTEN erwägen, unterschiedliche URLs oder Subdomains für Browser- und Nicht-Browser-Zugriff zu verwenden, um unterschiedliche Sicherheitsrichtlinien zu ermöglichen.
Anwendungen SOLLTEN sich Cross-Origin Resource Sharing (CORS) [FETCH] bewusst sein und wie es browserbasierten Zugriff auf Ressourcen beeinflusst. CORS kann verwendet werden, um zu kontrollieren, welchen Ursprüngen der Zugriff auf Ressourcen von einem Browser aus erlaubt ist.