Sicheres Login?

  • Hi

    Ist das ein sicheres Login?


    die else sachen fehlen :razz:

  • Hi

    Ist das ein sicheres Login?

    die else sachen fehlen :razz:

    Äh nein
    ..................................

    Gruß crAzywuLf :D

  • public function entry_count ($table, $where)
    {

    $this->sql = "SELECT * FROM ".$this->prefix.$table." WHERE ".$where;


    $this->query = mysql_query($this->sql) or die("Shit happens (count)");

    return mysql_num_rows($this->query);
    }

  • Ja schon aber das geht ja nur wenn die daten per get übergeben werden?! aber ich benutze post

  • Was für ein Irrglaube, das geht überall da wo der Usermanipulieren kann spricht get, post, cookie etc

    mfg

  • genaue beschreibung

    Hättest du die Suche benutzt hättest du jetzt mindestens schon 10 Lösungen von Usern die diesen und letzten Monat gepostet haben...
    Selbst meine Oma hätte was zu dem Thema hier im Forum gefunden.

    mysql_real_escape_string()
    Da das Passwort mit md5 versiehst, ist das schon mal ganz ok.
    Den Namen könntest du noch mit einem regulären Ausdruck oder Funktionen wie ctype_alnum() prüfen, hier nach dem wie die bei dir aussehen und welche Zeichen du zulässt\zulassen willst.

    Ansonsten währe noch ein Problem, dass der Query von $this->mysql->read_entry warscheinlich irgendwie so aussieht:

    Zitat


    SELECT * FROM....

    was nicht gut ist...
    Du solltest nur Felder auslesen die du auch benutzt.

    Bitteschön, aber die Suche währe einfacher gewesen.

    EDIT:
    p.s.
    mit COUNT(*) macht die Funktion erst richtig Sinn^^ ;)

    PHP
    <?php
    public function entry_count ($table, $where)
    {
        $this->sql = "SELECT COUNT(*) FROM " . $this->prefix.$table . " WHERE " . $where;
        $this->query = mysql_query($this->sql) or die("Shit happens (count)");
        return mysql_num_rows($this->query);
    } 
    ?>

    Gruß crAzywuLf :D

    2 Mal editiert, zuletzt von crAzywuLf (5. Juni 2009 um 19:30)

  • @treadstarter
    So und jetzt bin ich mal so nett und gibt dir mal nen Code der vllt interessant für dich wäre:

    Code
    $querystring = preg_replace('/(FROM|UPDATE|INTO|TABLE|JOIN) (.+)/Us', '$1 '.$pref.'_$2', $querystring);

    Das setzz du in deine function entry_count ein, dann kannst du dir sparen immer Sachen an die Funktion vom Query übergeben zu müssen:)


    @crazywolf
    !empty($user) oder vllt doch einfach isset($user) ;)

  • Zitat

    @crazywolf
    !empty($user) oder vllt doch einfach isset($user) ;)

    zwischen isset() und empty() ist ein Unterschied und für mich ist eigentlich nur interessant ob die Variable nicht leer ist und nicht ob die Variable existiert:p

    PHP
    $test = "";
    if(isset($test))
    {
        echo "Jo";
    }

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (5. Juni 2009 um 19:39)

  • So müssten doch Mysql injections verhindert werden :(

  • Diese Funktion ist völliger Quatsch! Was kommt da am Ende raus? Die Anzahl der Datenzeilen, die zutreffen, die Daten aber nicht.

    Und $type sollte nicht am Ende der Parameterliste stehen, da diese Variable auf jeden Fall benötigt wird. $where und $order sollten vorinitialisiert sein.

  • Hi

    Also diese Funktion wird eigentlich von vielen anderen funktionen aufgerufen daher ist es nicht möglich die $where und $table variable am anfang zu definieren. Das mit dem switch ist auch nur weil einzelne funktionen nicht immer eine where eingrenzung brauchen

  • Also diese Funktion wird eigentlich von vielen anderen funktionen aufgerufen daher ist es nicht möglich die $where und $table variable am anfang zu definieren.


    Tja, klassischer Fall von falscher Planung. Pflichtparameter gehören an den Anfang, optionale Parameter dahinter.