Projekt sicherer machen

  • Hi,

    ich habe ein neues Projekt geschrieben. Allerdings habe ich noch ein paar Bedenken bezüglich der Sicherheit. Erstmal vorneweg:

    Register_globals -> On
    Magic_quotes_gcp -> On
    Safe_mode -> Off

    Ich denke mal alle 3 Werte sollte ich ändern. ;) Also Register_globals und Magic_qquotes_gcp abschalten und den safe_mode von PHP an.

    Nebenbei ich verwende PHP4 und MySQL. Worauf sollte ich achten, um Sicherheitslücken zu vermeiden?

    Logins werden mit Sessions verwaltet, wobei ich lediglich 2 Werte dafür abspeicher, nämlich login und nick. Nick enthält wie der Name schon sagt den nicknamen des users und login 1. auf allen userinternen seiten frage ich dann ab:

    if($_SESSION['login'] == 1){} else {echo 'Du bist nicht eingeloggt';}

    Finde ich nicht sehr sicher, weil register_globals On ist. ;)

    Wie sieht es mit Formulardaten, die ich mit POST übermittle? Reicht ein $namedesinputs oder $_POST[' namedesinputs']

    Fragen über Fragen ... Aber heute Nachmittag soll das einigermaßen sicher sein.

    Wie kann ich denn register_globals und magic_quotes_gcp abschalten und safe_mode an? Ich bin bei evanzo und im ControlCenter geht das nicht.

  • Zitat

    Worauf sollte ich achten, um Sicherheitslücken zu vermeiden?


    Traue keinen Daten, die nicht von dir kommen. Eine Überprüfung ist Pflicht!

    register_globals auf off stellen. Es ist traurig genug, dass bei evanzo das immer noch auf on steht. Der große Crash wird dann wohl bei PHP 6 kommen, da gibt es nur noch off.

    http://de2.php.net/manual/de/configuration.changes.php
    http://www.php.net/manual/de/security.globals.php
    http://de3.php.net/manual/de/func…cape-string.php

    http://www.google.de/search?q=sichere+php+skripte

  • Wie kann ich die denn auf Off stellen?

    Welche Daten? Das kommt alles von mir ... Nur habe ich Projekte meist für Freunde & Bekannte oder ohne MySQL programmiert. da mein jetztiges Projekt ein bisschen größer ist, will ich die ganzen Sichehitslüscken, die ICH aus Versehen "programmiert" habe zu entfernen.

  • Ich habe es jetzt Off bekommen. Jetzt akzeptiert er aber nicht mehr, wenn ich Inpu-Namen mit $name_des_inputs abfrage. Muss ich jetzt $_POST['name_des_inputs'] nehmen, wenn ich Post als method in der form angegeben habe?

  • JAAAAAAAAAAAAAA!!! Das kann man aber auch einfach mal ausprobieren und/oder die Doku lesen!

  • und magic quotes, würde ich auf jeden fall an haben, da du damit schon relativ gut vor sql injections geschützt... aber mysql _Real_Escape währe da auch immer die erste wahl.

  • Wenn ich eine URL habe mit einem Parameter und ich es mit $_GET['para'] abfrage, ist es leer. Egal ob Global_register an oder aus ist ...

  • also das stimmt definitiv nicht... die parameter werden 100% tig durchgeschleift..

    also
    index.php?foo=baa

    so enthält
    $_GET['foo'] == 'baa'.

    sei den das ist noch ein php 3 Server, was es zu 9.999999% nicht ist.
    und wenn du dich mal bemühen würdest, die php doku zu lesen, wüstest du auch was register_globla macht...
    den nicht viel mehr als ein
    extract($_REQUEST);

    am anfang einer PHP Datei.

  • seit wann ist SESSION unsicher???
    Ok, es mag stimmen dass PHP mehrere Sicherheitsloecher bez. $_SESSION hatte, aber wenn mans (wie bereits erwahent) mit einer Datenbank koppelt kann nix schief laufen...

    Und glaub mir: cookies faken ist einfacher als ne Session faken!