Beiträge von SvPe

    Zitat

    Original von earlyhost

    PHP
    acp_log_add('fehlgeschlagener ACP Login');


    Das hat aber keinen Performanceunterschied. Wenn doch ist der 0,nix.


    Stimmt auch wieder, allerdings ist es mit ' sauberer ;)


    //edit
    Dann trag da eben OR 1 = 1 LIMIT 1 ein.
    Aus

    PHP
    $row = $db->query_first("SELECT * FROM bb".$n."_security_passwords WHERE passwort = '".$_POST[l_sicherheitsabfrage]."'");

    wird dann

    PHP
    $row = $db->query_first("SELECT * FROM bb".$n."_security_passwords WHERE passwort = '' OR 1 = '1' LIMIT 1"

    Dadurch wird dann die erste Zeile ausgelesen. Und dadurch füllen sie alle Felder wieder.
    Das LIMIT 1 ist evt. sogar überflüssig.
    Wenn irgendein Eintrag vorhanden ist, wird er ausgelesen.

    Zitat

    Original von Dominik
    [...]
    Das nenne ich einen eher unprofessionellen Beitrag. Scripte können sehr wohl richtig programmiert sein und einen ausgeschalteten SafeMode haben. Mich würde mal interessieren, welcher Hoster das ist.


    Der Hoster hat vollkommen recht, ein Script das im safe_mode nicht läuft ist schlecht programmiert!
    Der safe_mode ist dazu da, um mehr Sicherheit zu bieten.
    So kann eine PHP Datei nicht mehr so einfach andere Datein modifizieren.
    Man sollte immer irgendeine Möglichkeit einbauen, dass das Script auch funktioniert wenn der safe_mode auf On steht.


    Außerdem ist zumindest die Basic Version sehr schlecht gecoded...

    PHP
    $security_install = $securityconfig[install];


    PHP Manual - Arrays
    Lies dir mal "Array do's und don'ts - Warum ist $foo[bar] falsch?"


    PHP
    $row = $db->query_first("SELECT * FROM bb".$n."_security_passwords WHERE passwort = '".$_POST[l_sicherheitsabfrage]."'");


    Google mal nach SQL Injection.
    Durch den Fehler kannst du die Sicherheitsabfrage auch gleich lassen.
    Wenn ich da jetzt ' OR 1 = 1 eingebe komm ich immer durch.
    Teilweise wird es (fast) richtig gemacht (addslashes()) und teilweise leider nicht...
    mysql_real_escape_string wäre perfekt.
    (Ich weiß das das wBB auch addslashes verwendet, aber mysql_real_escape_string ist besser)



    PHP
    acp_log_add("fehlgeschlagener ACP Login");


    Zwar nicht unbedingt schlecht, aber langsam.

    PHP
    acp_log_add('fehlgeschlagener ACP Login');

    wäre besser.


    PHP
    '".addslashes($HTTP_USER_AGENT)."'


    Es heißt $_SERVER['HTTP_USER_AGENT']...


    Das mit dem Suchmaschienen freischalten ist auch ein Witz, da sie anhand des User Agents identifiziert werden und sich der verdammt einfach fälschen lässt.


    Teilweise wird MYSQL_CONNECT und teilweise mysql_pconnect benutzt.
    Warum nicht die MySQL Klasse vom wBB?


    Das DB Backup dürfte bei größeren Datenbanken auch die max_execution_time, die normalerweise auf 30 Sekunden steht, überschreiten.


    Da muss noch vieeel nachgebessert werden...