Uplink7 CORS Access-Control
1. Übersicht
Das Plugin Uplink7 Cors Access-Control (v1.1) bietet eine umfassende und sichere Lösung zur Verwaltung von Cross-Origin Resource Sharing (CORS) in WordPress. Es schützt Ihre REST-API, AJAX-Endpunkte und WPGraphQL-Schnittstellen und erlaubt gleichzeitig autorisierten externen Anwendungen (wie Headless-Frontends oder mobilen Apps) den Zugriff.
Das Plugin nutzt ein Freemium-Modell, welches über das Freemius SDK integriert ist.
2. Installation & Konfiguration
Nach der Aktivierung des Plugins finden Sie die Konfigurationsoberfläche im WordPress-Backend unter:
Einstellungen -> CORS Settings
Die Einstellungen sind in drei Haupt-Tabs unterteilt:
General (Globale Einstellungen)
Endpoint Rules (Premium: Pfadspezifische Regeln)
Error Logs (Premium: Fehlerprotokolle)
3. Hauptfunktionen (Basis-Version)
Im “General” Tab lassen sich die globalen Sicherheitsrichtlinien festlegen:
Allowed Origins: Bestimmt, welche externen Domains zugreifen dürfen (z. B. https://meine-app.de). Ein Wildcard * erlaubt alle Domains.
Allowed Methods: Steuert die erlaubten HTTP-Methoden (GET, POST, PUT, PATCH, DELETE, OPTIONS).
Allow-Headers & Expose-Headers: Definiert, welche HTTP-Header vom Client gesendet werden dürfen und welche Header der Browser in der Antwort lesen darf (wichtig für benutzerdefinierte Paginierungs-Header wie X-WP-TotalPages).
Allow Credentials: Erlaubt das Senden von sensiblen Daten wie Cookies oder Authentifizierungs-Headern.
Wichtiger Sicherheitshinweis: Wenn diese Option aktiv ist, darf aus Sicherheitsgründen kein Wildcard * als Origin verwendet werden. Das Plugin warnt den Nutzer automatisch im Backend, falls diese unsichere Kombination gewählt wird.
Max Age: Bestimmt, wie lange Preflight-Anfragen (OPTIONS) im Browser gecached werden (Standard: 86400 Sekunden / 24 Stunden), um die Serverlast zu reduzieren.
4. Premium-Funktionen
Durch den Erwerb einer Lizenz (oder die Aktivierung des Trials via Freemius) werden folgende Funktionen freigeschaltet:
Endpoint Rules: Ermöglicht das Überschreiben der globalen Origin-Regeln für spezifische API-Endpunkte.
Unterstützt reguläre Ausdrücke (RegEx), z. B. /wp-json/wc/v3/.*.
Ideal, um bestimmten Partnern nur Zugriff auf ganz bestimmte REST-Routen zu geben.
Error Logging: Speichert abgelehnte und blockierte CORS-Anfragen direkt in der Datenbank (wp_cors_error_logs).
Zeichnet Zeitstempel, blockierten Origin, angeforderte URI und die Methode auf.
Enthält einen Button zum sicheren Leeren der Logs via AJAX.
5. Technische Highlights & Performance
Early Preflight Interception: Das Plugin hakt sich sehr früh in den WordPress-Ladezyklus ein (init Hook, Priorität 1). Eingehende OPTIONS-Anfragen werden sofort mit den passenden Headern beantwortet und das Skript danach direkt beendet (exit;). Das spart massiv Serverressourcen.
Volle Kompatibilität: Überschreibt standardmäßige WordPress REST-API CORS-Header sicher (rest_pre_serve_request) und integriert sich reibungslos in WPGraphQL (graphql_process_http_request).
Sicherheit: AJAX-Aktionen (wie das Leeren der Logs) sind mit WordPress Nonces (check_ajax_referer) vor Cross-Site Request Forgery (CSRF) geschützt.
