Cross-Origin Request Sharing (CORS) ist ein Mechanismus, der dies ermöglicht Browser, um ursprungsübergreifende HTTP-Anfragen sicher durchzuführen und so die Kommunikation zwischen verschiedenen Domänen oder Subdomänen zu ermöglichen. Dieser Mechanismus hilft, unbefugten Zugriff auf Ressourcen zu verhindern und gewährleistet Datenschutz und Sicherheit.
Um den CORS-Fluss zu demonstrieren, betrachten wir ein vereinfachtes PHP-Skript:
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: *");
Dieses Skript ermöglicht ursprungsübergreifende Anfragen von jedem Ursprung und jedem Header. In bestimmten Fällen kann es jedoch zu einer Fehlermeldung wie der folgenden kommen:
Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers
Um CORS-Anfragen korrekt zu verarbeiten, müssen Sie die zulässigen Header explizit angeben. Eine umfassendere Funktion, die richtig auf CORS-Anfragen reagiert, ist:
function cors() { if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); } if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) { header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); } if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) { header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); } exit(0); } echo "You have CORS!"; }
1. Validieren Sie HTTP_ORIGIN:
Wenn Sie einen HTTP_ORIGIN-Header erhalten, vergleichen Sie ihn immer mit einer Whitelist genehmigter Ursprünge, bevor Sie die Anfrage zulassen.
2. X-Requested-With-Validierung:
Das obige Skript erlaubt jeden Header, einschließlich X-Requested-With. Dies sollte ebenfalls validiert werden, insbesondere in einer Produktionsumgebung.
3. Lesen Sie die CORS-Spezifikation:
Ein umfassendes Verständnis von CORS finden Sie in den offiziellen Spezifikationen:
Das obige ist der detaillierte Inhalt vonWie kann ich CORS-Header in PHP richtig konfigurieren, um Cross-Origin-Request-Fehler zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!