Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Web sitemin kök dizinini izinsiz ziyaretcilere nasil kapatabilirim
#1
[Resim: 59a16de6c6ac3.png]

Web sitemin kök dizinini izinsiz ziyaretcilere nasil kapatabilirim

Manche Dateien möchten wir nur in andere einbinden: Konfigurationsdateien, Klassen oder Ähnliches. Sie sollen nie per HTTP aufgerufen werden, weil sie sensible Daten enthalten oder allein kein nützliches Ergebnis hervorbringen.
Dafür gibt es vier Wege.
Außerhalb des Wurzelverzeichnisses lagern

Einige Webhoster bieten einen FTP-Zugang an, bei dem wir oberhalb des Webverzeichnisses einsteigen. Sehr praktisch: Wir legen dort einfach ein Verzeichnis für die einzubindenden Dateien an und rufen sie dann ungefähr so auf:

Kod:
require_once
    dirname($_SERVER['DOCUMENT_ROOT'])
    . DIRECTORY_SEPARATOR
    . 'includes'
    . DIRECTORY_SEPARATOR
    . 'config.php';



Geschütztes Verzeichnis unterhalb der Wurzel

Wenn wir keinen Zugriff oberhalb des Wurzelverzeichnisses haben, dann legen wir eben eines darunter an und schützen es. Da bieten sich zwei Varianten an, die beide per .htaccess erzeugt werden.

Umleitung aus der generellen .htaccess:


Kod:
Redirect permanent /includes/ http://localhost


Oder wir legen eine .htaccess in das geschützte Verzeichnis selbst und schreiben dort hinein:

Kod:
Order allow,deny
Deny from all


Das Einbinden aus dem PHP-Skript sieht fast genauso aus:

Kod:
require_once
    $_SERVER['DOCUMENT_ROOT']
    . DIRECTORY_SEPARATOR
    . 'includes'
    . DIRECTORY_SEPARATOR
    . 'config.php';

Bestimmte Endungen verbieten

Bei komplexeren Skripten möchten wir natürlich alle Dateien hübsch ordentlich in Verzeichnissen ablegen, deren Ordnung nicht vorrangig von der Zugriffskontrolle geprägt ist.

Hier benutze ich gerne die Endung inc für Includes. Angenehmer Nebeneffekt: Ich weiß schon beim Blick auf die Verzeichnisliste, welche Dateien wie aufgerufen werden sollen.

Vier Zeilen in der .htaccess verbieten den Zugriff auf alle Includes:

Kod:
<Files *.inc>
    order allow,deny
    deny from all
</Files>

Kontrolle innerhalb der Datei

Das ist die scheußlichste Methode, weil man von außen nicht sieht, ob die Datei geschützt ist. Und leider ist es auch die häufigste.

Am Kopf der Datei steht eine … freiwillige Selbstkontrolle:


Kod:
if ( 'geheim.php' == basename($_SERVER['SCRIPT_FILENAME']) )
{
    die('Bitte nicht direkt aufrufen!');
}

Immerhin funktioniert sie – wie die erste Methode – auch dann, wenn der Anwender keinen Zugriff auf die .htaccess hat.

[Resim: 59a16ef01676b.png]

Dateirechte anpassen

Schließlich können wir noch per FTP oder SSH den entsprechenden Dateien die Leserechte für anonyme Nutzer entziehen. Das funktioniert immer, und wir sehen es bei der Auflistung der einzelnen Verzeichnisse.

Dank an Alexander Schestag für diesen Nachtrag.

Kaynak : toscho de

-------

Etiketler : Web sitemin, kök dizinini, izinsiz ziyaretcilere, nasil kapatabilirim,Zugriff verboten, Wie man, Skripte gegen, HTTP-Aufrufe sperrt,







Signing of Karoglan [Resim: 149213423837045.png]
Alıntı
#2
Teşekkür ederim paylaştığın için ellerine sağlık.





Signing of israNUR [Resim: 147252135085353.png]
Alıntı


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi