Blocken Sie den direkten Zugriff auf eine Datei über HTTP, erlauben Sie jedoch den Zugriff auf das PHP-Skript

Eine Möglichkeit, den direkten Zugriff auf eine Datei über HTTP zu blockieren, aber den Zugriff auf das PHP-Skript zu ermöglichen, besteht darin, eine .htaccess-Datei im Verzeichnis mit der Datei zu verwenden. Sie können folgenden Code in die .htaccess-Datei hinzufügen:

<FilesMatch "dateiname.ext">
    Order Allow,Deny
    Deny from all
    Allow from 127.0.0.1
</FilesMatch>

Dieser Code blockiert den Zugriff auf die Datei "dateiname.ext" von jeder IP-Adresse, außer der IP-Adresse "127.0.0.1", die die lokale Adresse ist. Da PHP-Skripte auf dem Server ausgeführt werden, haben sie Zugriff auf die Datei.

Eine weitere Lösung ist es, die Datei außerhalb des webroot zu verschieben und file_get_contents oder include/require zu verwenden, um die Datei aus dem PHP-Skript zu lesen.

Man kann auch PHP verwenden, um zu prüfen, ob die Anforderung von einem PHP-Skript stammt und nur Zugriff zu gewähren, wenn dies der Fall ist. Im PHP-Skript, das auf die Datei zugreifen muss, fügen Sie oben folgenden Code hinzu:

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhtt