Heim > Artikel > Backend-Entwicklung > Wie verhindert man den direkten Zugriff auf AJAX-aufgerufene PHP-Dateien?
Abfangen des direkten Zugriffs auf AJAX-aufgerufene Dateien
In AJAX-gesteuerten Anwendungen erfordert das Abrufen von Daten aus serverseitigen PHP-Skripten sorgfältige Überlegungen Sicherheit. Beim Aufrufen von Skripten über GET-Anfragen werden deren Inhalte und Parameter für jeden sichtbar, der HTTP-Header untersucht.
Verhindern des direkten Dateizugriffs
Um zu verhindern, dass nicht autorisierte Benutzer direkt auf PHP-Dateien zugreifen können wir den von AJAX-Anfragen gesendeten HTTP_X_REQUESTED_WITH-Header nutzen. Dieser Header zeigt an, dass die Anfrage von einem XMLHttpRequest stammt, sodass wir sie von direkten Zugriffsversuchen unterscheiden können.
Implementierung
Fügen Sie in Ihrem PHP-Skript den folgenden Codeblock hinzu vor allen sensiblen Vorgängen:
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) { // Allow access to AJAX requests } else { // Block direct file access and display an error message header("HTTP/1.0 403 Forbidden"); echo "Direct access not permitted."; }
AJAX-Anfrage Header
Ihr JavaScript-Code sollte die folgende Zeile enthalten, um den X-Requested-With-Header zu AJAX-Anfragen hinzuzufügen:
var xhrobj = new XMLHttpRequest(); xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
Dadurch wird sichergestellt, dass der Server den Header korrekt empfängt identifiziert die Anfrage als AJAX-Aufruf. Durch die Implementierung dieser Maßnahmen können Sie den direkten Dateizugriff auf PHP-Skripte, die von AJAX-Funktionen aufgerufen werden, wirksam verhindern und gleichzeitig die Zugänglichkeit für legitime AJAX-Anfragen aufrechterhalten.
Das obige ist der detaillierte Inhalt vonWie verhindert man den direkten Zugriff auf AJAX-aufgerufene PHP-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!