Quando si costruisce un Gateway Ajax, cioè un file che viene richiamato dall’oggetto XmlHTTPRequest Javascript, si può involontariamente creare un tunnel per intrusioni non gradite. Essendo infatti un file come gli altri, posizionato sul nostro server, risulta raggiungibile anche dalla barra indirizzi del browser. Fortunatamente esiste un modo semplice per identificare il tipo di richiesta:
1 2 3 4 5 | if (@isset($_SERVER['HTTP_X_REQUESTED_WITH']) ) { // Chiamata dall'oggetto HTTPRequest (Ajax) } else { // Non fare nulla o mostra un alert } |
In questo modo abbiamo impedito le chiamate dalla barra indirizzi del browser. La chicciola (@, at) non è strettamente necessaria, tuttavia, se gli header sono stati già inviati alla pagina, si potrebbe ottenere uno spiacevole Warning.








6
A me questo script non funziona … le chiamate ajax rimangono come “in stallo” …
@Michele: probabilmente dipende dalle tue impostazioni Server, in particolare quelle di PHP. La variabile
$_SERVER['HTTP_X_REQUESTED_WITH']viene impostata automaticamente dall’ambiente server quando riceve una richiesta dall’oggettoXmlHTTPRequest. Prova a verificare le tue impostazioni, anche perchè a me funziona…@Giovambattista Fazioli: Scusa la mia ignoranza, ma non so come verificare questa impostazione
@Michele: se non puoi chiedere al tuo amministratore del server, verifica bene lo script che hai usato, forse il problema è nel codice e non nel server. Prova con un semplice controllo sulla
$_SERVER['HTTP_X_REQUESTED_WITH']o, se possiedi FireFox con FireBug, alla verifica dei dati inviati e ricevuti sulla rete.