Zugriff auf PHP Script über Internet verbieten

silentcop

New Member
Hallo zusammen,

langsam weiß ich echt nicht mehr was ich machen soll.. ich habe nachfolgendes Problem und zwar habe ich in meinem DocumentRoot ein "Verzeichnis" liegen. Nennen wir es einfach mal test. In diesem Verzeichnis liegt eine index.php. Folglich kann ich die index.php auch "normal" aufrufen:

http://meineipadresse/test/index.php

In dem Verzeichnis Test liegen weitere Ordner mit PHP Scripten. Da diese dadurch auch im DocumentRoot liegen sind diese ebenfalls direkt über den Browser aus dem Internet aufrufbar. Die Scripte machen folgendes, sie holen Daten von einem anderen Server und schreiben die dann in eine Datenbank.

Das will ich so natürlich nicht haben. Nun könnte ich ja in das Verzeichnis Test eine htaccess legen und den Zugriff so verbieten. Das hat aber zur Folge dass ich das Script lokal auf dem Webserver auch nicht mehr ausführen kann.

Kurz und knapp zusammengefasst ..ich will das Script nur lokal auf meinem Server ausführen lassen und den Zugriff auf das Script über das Internet (Browser) verhindern.

Könnt ihr mir bitte ein wenig auf die Sprünge helfen.. Ich wäre euch super Dankbar...

Grüße
Silentcop
 
Probiere es mal mit chmod unter Linux.

Beispiel: chmod go-rwx index.php

Man kann auch das ganze Verzeichnis test mit den einzelnen Dateien und Unterverzeichnissen darunter für andere aus dem Internet schützen. Und das geht wie folgt:

Beispiel: chmod -R go-rwx test
 
Last edited by a moderator:
"Require host localhost" korrekt setzen und gut ist's.
Gegebenenfalls mittels LocationMatch/DirectoryMatch/FilesMatch selektiv anwenden.

Beispiele aus der Praxis:
Code:
<Directory "/">
    <IfModule allowmethods_module>
        AllowMethods GET POST OPTIONS
    </IfModule>
    Options None +FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>
<DirectoryMatch "^[\._]">
    Require all denied
</DirectoryMatch>
<FilesMatch "^[\._]">
    Require all denied
</FilesMatch>

    <Location "/server-status">
        SetHandler server-status
        <RequireAny>
            Require host localhost
        </RequireAny>
    </Location>
 
Last edited by a moderator:
Ohne Deine Scripte zu kennen, vermute ich sogar, dass Du sie direkt auf der Console ausführen könntest. Dann z.B. zeitgetriggert mit cron.
Dadurch brauchst Du sie nicht mehr im Doc Root vorhalten.

Gruss
 
Back
Top