Fragen zur Sicherheit

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von koli.bri, 19.06.2006.

  1. koli.bri

    koli.bri Thread Starter Gast

    Hallo.

    Vielleicht aus Mangel an mangelnden Suchbegriffen habe ich dazu nichts gescheites gefunden.
    Also:
    Was sollte ich beachten, um möglichst einen höchstmöglichen Sicherheitsgrad meiner PHP-Script zu erreichen?

    Was ich bisher gemacht habe:
    Das hauptscript erstellt ganz am Anfang eine Funktion (nohack()), welche den Rückgabewert true zurückliefert.
    Alle Scripts, die in andere Dateien liegen, haben dann am Anfang stehen:

    PHP:
    nohack() OR die("ne, iss nich");
    Somit können die schonmal nicht ohne weiteres aufgerufen werden.

    Werden Formulare verarbeitet, wird neben den Feldern auch noch überprüft, ob der Submitbutton gedrückt worden ist (also ob in der $_POST['submitbutton']-Variable auch was drinsteht).

    Bei Sessions speicher ich die IP in der Session ab, ohne Cookies.

    Zudem kommt in jedes Unterverzeichnis ein index.html

    Gibts noch weitere Tipps, bzw. Richtlinien, die man befolgen sollte?
    Zum Beispiel den Scripten nur bestimmte Rechte geben (da hab ich gar keinen Plan von).

    Wie greifen "Hacker" auf PHP-Scripte zu, also vor was kann man, sollte man sich noch schützen?

    gruß
    Lukas
     
  2. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    MacUser seit:
    15.04.2006
    Hi.

    Wo läuft Dein Skript? Auf einem eigenen Server oder woanders?
    register_globals sollte auf OFF stehen. Sonst können Hacker einfach Variablen über URL-Parameter mit Werten belegen. Zumindest aber solltest Du sorgfältig jede benutzte Variable mit einem Initalwert belegen, selbst wenn der 0 ist.

    Ich habe es auch schon so gemacht, daß die eigentlichen Skripte in einem mit .htaccess gesicherten Unterverzeichnis gespeichert sind. In dem öffentlich zugänglichen Verzeichnis befindet sich dann nur eine PHP-Datei, die die Dateien aus dem gesicherten Verzeichnis includiert. Auf diese Weise ist gesichert, daß Hacker sich nicht irgendwelcher Teilskripte bedienen können.

    Gruß
    Rajmund
     
  3. koli.bri

    koli.bri Thread Starter Gast

    Das Script läuft auf einem Hostinganbierter, also nicht mein eigener Server.
    Das mit den REGISTER_GLOBALS müsste ich nachfragen.

    Das mit den Variablen ist ein Guter Tipp, mache ich Teilweise auch.

    Die Include-Dateien in einem Extra-Verzeichnis mit .htacces zu schützen, nun ja, da muss ich mich mal gründlich in die Materie einlesen. Vor allem, wie dass ganze dann mit den Rechten klappt.

    (Ist das aufgerufene Script dann der Benutzergruppe des aufrufenden zugeordnet, oder hat es die Gruppe des Server, etc, etc...)

    Auf jeden Fall vielen lieben Dank für die Hilfe..

    gruß
    Lukas
     
  4. master_p

    master_p MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Die "register global"-Einstellung kannst Du mit der phpinfo() herausfinden.
     
  5. koli.bri

    koli.bri Thread Starter Gast

    Oh, danke...
    Wieder was dazugelernt *freu*
     
  6. Rajmund

    Rajmund MacUser Mitglied

    Beiträge:
    539
    Zustimmungen:
    58
    MacUser seit:
    15.04.2006
    Mit .htaccess kann man ganz viele verschiedene Dinge machen. Wenn man es für den Paßwortschutz eines Verzeichnisses (oder einer Datei) einsetzt, dann verändern sich die Rechte nicht. Es hat ja nur Auswirkungen auf die Arbeitsweise des HTTP-Servers und des Browsers. Letzterer bietet dem Surfer ja dann einen Dialog an und fordert zur Eingabe von Benutzername und Paßwort auf, um Zugriff auf das Verzeichnis zubekommen.
     
  7. koli.bri

    koli.bri Thread Starter Gast

    Dass das mit .htacces möglich ist, weiß ich. :)
    Ich muss mich nur mehr mit der Technik befassen. Aber das krieg ich (hoffentlich) auch alleine hin ^^

    vielen Dank nochmal

    gruß
    Lukas
     
  8. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    MacUser seit:
    30.01.2005
    bzgl. include/require und Directory-Schutz

    Du könntest deine in folgender Struktur ablegen, wenn dein Hoster das ermöglicht:

    Code:
    
    +- htdocs
    +-- index.php
    +-- was-auch-immer.php
    
    +- include
    +-- inc.geheim.php
    
    in diesem Beispiel liegt der Ordner für die include-Dateien auf der gleichen Ebene, wie der Hauptordner des webservers. Das bedeutet: Die Skripten sind nicht per Browser erreichbar. Deine Kontrollfunktion kannst du dann zurückbauen, da der entsprechende Fall nicht mehr auftritt. Den include machst du dann so:

    Code:
    include(../include/inc.geheim.php);
    
     
  9. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    MacUser seit:
    30.01.2005
    bzgl. Sicherheit im allgemeinen

    Hast du dich schon mit dem Thema SQL-Injections beschäftigt? Sagt dir das was? Diese Technik ist weitaus gefährlicher als die Probleme, die durch unberechtigten Aufruf von includes entstehen.

    http://de.wikipedia.org/wiki/SQL-Injection
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Das ist eher die Ausnahme; als Alternative kann man (so vorhanden) das cgi-bin Verzeichnis zu diesem Zweck missbrauchen.
     
Die Seite wird geladen...

Diese Seite empfehlen