Ich möchte serverseitig prüfen, ob eine Anfrage an meine PHP-Seite eine Ajax-Anfrage ist oder nicht.Wie überprüfe ich, ob die Anfrage eine AJAX-Anfrage mit PHP ist?
sah ich zwei Möglichkeiten, dies zu tun:
Erste Möglichkeit: einen GET
Parameter in der Anfrage zu senden, die die Seite sagt, dass dies ein AJAX-Request (= mypage.php?ajax
)
mypage.php:
if(isset($_GET['ajax'])) {
//this is an ajax request, process data here.
}
Zweite Weise: Satz einen Header an den xmlHttpRequest
:
clientseitige js:
xmlHttpRequestObject.open(“GET”,url,true);
xmlHttpRequestObject.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
mypage.php:
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//request is ajax
}
Die Tatsache ist, können diese zwei Möglichkeiten, es zu tun leicht gehackt werden, so ist es nicht zu überprüfen, zu sichern, wenn ich eine AJAX-Anforderung wie diese zu erhalten .
Wie kann ich überprüfen, ob ich eine AJAX-Anfrage erhalte?
Denken Sie nur daran: "Vertrauen Sie niemals der Client-Seite". Sie können nicht wissen, woher eine Anfrage stammt. Du könntest (fast) alles parodieren/verkleiden. – DaGardner
Mögliches Duplikat von http://stackoverflow.com/questions/4301150/how-do-i-check-if-the-request-is-made-via-ajax-with-php – JRizz
@ ChristianGärtner Ich weiß das, deshalb Ich habe die Frage gepostet. Ich denke nicht, dass es einen 100% sicheren Weg gibt, es zu tun, aber ich denke, dass es einen Weg geben muss, es für Hacker schwierig zu machen, die Anfrage zu fälschen (vielleicht auf der Serverseite) – BackSlash