Ich bin in einem PHP-Skript und ich möchte überprüfen, ob die Anfrage eine Ajax-Anfrage ist. (Im Grunde um nicht direkt Skriptzugriff, andere als Ajax-Aufruf zu ermöglichen, ist ...)Check für Ajax Anfrage in Code Igniter
Also, ich bin definieren IS_AJAX
irgendwo in der Haupt index.php
Datei:
define('IS_AJAX',
isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
Und dann überprüft an der Spitze von meinem Skript:
if (!IS_AJAX) exit('No direct script access allowed');
Da ich zu CodeIgniter bin neu, ich bin nicht wirklich sicher ...
- Gibt es eine solche integrierte Funktionalität?
- Gibt es eine mehr ... elegante Art, es zu tun?
Großartig! Ich wusste, dass ich etwas verpassen könnte ... Vielen Dank, Kumpel! –
is_ajax_request() ist keine Sicherheitsmaßnahme. Es gibt eine ähnliche Antwort, bei der stattdessen 404 zurückgegeben wird, was einen irreführenden Eindruck vermieden hätte. (HTTP/1.1 "Dieser Statuscode wird häufig verwendet, wenn der Server nicht genau angeben möchte, warum die Anforderung abgelehnt wurde oder keine andere Antwort möglich ist") http://stackoverflow.com/questions/6555652/controller- Methoden-die-nur-aufgerufen-by-ajax-make-private/8072539 # 8072539 – sourcejedi
Ich verwende normalerweise load-Methode, um Datei zu laden, wie kann ich verhindern, dass diese Datei direkt geladen wird? –