Vorrei verificare sul lato server se una richiesta alla mia pagina php è una richiesta Ajax o meno.Come verificare se la richiesta è una richiesta AJAX con PHP
Ho visto due modi per farlo:
Primo modo: l'invio di un parametro GET
nella richiesta che racconta la pagina che si tratta di una richiesta AJAX (= mypage.php?ajax
)
mypage.php:
if(isset($_GET['ajax'])) {
//this is an ajax request, process data here.
}
secondo modo: impostare un'intestazione ai xmlHttpRequest
:
js lato client:
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
}
Il fatto è che, questi due modi di farlo può essere facilmente violato, quindi non è sicuro di controllare se ottengo una richiesta AJAX come questo .
Come posso verificare se sto ricevendo una richiesta AJAX?
Basta tenere a mente: "MAI fidarsi del lato client". Non puoi sapere da dove viene fatta una richiesta. Potresti spoofare/camuffare/fingere (quasi) tutto. – DaGardner
Possibile duplicato di http://stackoverflow.com/questions/4301150/how-do-i-check-if-the-request-is-made-via-ajax-with-php – JRizz
@ ChristianGärtner Lo so, ecco perché ho postato la domanda Non penso che esista un modo sicuro al 100% per farlo, ma penso che ci debba essere un modo per rendere complicato per gli "hacker" falsificare la richiesta (magari gestendola lato server) – BackSlash