Beiträge von Peter

    Datei zum Schließen:

    PHP
    require("./global.php");
    $db->unbuffered_query("UPDATE bb".$n."_options SET value='1' WHERE varname='offline'");
    $db->unbuffered_query("UPDATE bb".$n."_options SET value='OFFLINETEXT' WHERE varname='offlinemessage'");
    
    
    $option = new options("lib");
    $option->write();

    Datei zum Öffnen:

    PHP
    require("./global.php");
    $db->unbuffered_query("UPDATE bb".$n."_options SET value='0' WHERE varname='offline'");
    $db->unbuffered_query("UPDATE bb".$n."_options SET value='' WHERE varname='offlinemessage'");
    
    
    $option = new options("lib");
    $option->write();

    Über den Kundenbereich wäre es möglich Passwörter bzw. die Kundendatenbank auszulesen. Durch eine geschickte SQL-Injektion ist dies möglich. Folgender Bugfix behebt diese Sicherheitslücken!

    suchen Sie in der customer.php nach folgender Codestelle:

    und ersetzen Sie diese mit folgender


    suchen Sie weiters folgende Codestelle (2 mal!):

    Code
    $row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".$_POST[customerid]."' AND password = '".$password."'");

    und ersetzen Sie diesen mit folgenden:

    Code
    $row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".intval($_POST['customerid'])."' AND password = '".$password."'");    /* Bugfix 17/09/2006 | possible SQL-Injection */


    suchen sie weiters folgende Codestelle:

    Code
    if($_POST[send] == "submitorder") {
    
    
        $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".$_POST[productid]."'");
    
    
        $db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
         VALUES ('".$_POST[customerid]."','".$_POST[email]."','".$_POST[productid]."','".$_POST[preis]."',0,'".time()."','".$_POST[update]."','".$_POST[install]."','".$_POST[firstname]."','".$_POST[fname]."','".$_POST[address]."','".$_POST[zipcode]."','".$_POST[city]."','".$_POST[country]."','".$_POST[company]."','".$row['multilicense']."','".$_POST['payment']."','".$wbbuserdata['userid']."')");

    und ersetzen Sie diese mit folgender:

    Code
    $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($_POST['productid'])."'");
    
    
        $db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
         VALUES ('".intval($_POST['customerid'])."','".addslashes($_POST['email'])."','".intval($_POST['productid'])."','".intval($_POST['preis'])."',0,'".time()."','".intval($_POST['update'])."','".intval($_POST['install'])."','".addslashes($_POST['firstname'])."','".addslashes($_POST['fname'])."','".addslashes($_POST['address'])."','".addslashes($_POST['zipcode'])."','".addslashes($_POST['city'])."','".addslashes($_POST['country'])."','".addslashes($_POST['company'])."','".addslashes($row['multilicense'])."','".addslashes($_POST['payment'])."','".$wbbuserdata['userid']."')");


    suchen Sie weiters nach folgender Codestelle:

    Code
    $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".$id."'");

    und ersetzen Sie diese mit folgender:

    Code
    $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */

    suchen Sie weiters nach folgender Codestelle:

    Code
    $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".$id."'");

    und ersetzen Sie diese mit folgender:

    Code
    $row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */

    suchen Sie weiters nach folgender Codestelle:

    Code
    $filedata = $db->query_first("SELECT * FROM bb".$n."_customer_versions WHERE id = '".$id."'");

    und ersetze Sie diese mit folgender:

    Code
    $filedata = $db->query_first("SELECT * FROM bb".$n."_customer_versions WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */


    Suchen Sie in der Datei products.php nach folgender Codestelle

    Code
    if(isset($_GET['id']))  $id = $_GET['id'];

    und ersetzen Sie diese mit folgender:

    Code
    if(isset($_REQUEST['id']))  $id = intval($_REQUEST['id']); /* Bugfix 17/09/2006 | possible SQL-Injection */

    Du kannst ja Variablen per $_GET übertragen. z.b.: addreply.php?threadid=704. Mit register_global wird automatisch die $threadid erstellt und mit dem Inhalt 704 gefüllt. Unter register_global = off musst du das selber machen.

    z.B.:

    PHP
    if(isset($_GET['threadid'])) $threadid = $_GET['threadid'];
      else $threadid = 0;

    Bei diesem Beispiel wäre es sinnvoll nur Integer Werte (Zahlen) zuzulassen. Also z.B.:

    PHP
    if(isset($_GET['threadid'])) $threadid = intval($_GET['threadid']);
      else $threadid = 0;

    Ein Backup über mehr als 8 MB des Arbeitsspeichers ist per SecuritySystem basic zur Zeit nicht möglich. Dies wird aber wahrscheinlich in der kommenden Version - wie auch schon in der professional und permium Version vorhanden - möglich sein.

    beheben können wir dieses Problem nicht, da wir keinen Zugriff auf den Server haben. Schriebe einen Hoster an und sag ihm, dass er solll PHP mit der GD-Bibliothek zur Grafikbearbeitung kompilieren.

    Zitat

    Anforderungen

    Mit der GD Bibliothek (verfügbar unter http://www.boutell.com/gd/) können Sie auch Grafiken erzeugen und manipulieren.

    Die mittels dieser Funktionen veränderbaren Grafik-Formate hängen davon ab, welche Version von GD Sie installieren und welche zusätzlich Biblioitheken GD benötigt um mit diesen Formaten umgehen zu können. GD-Versionen älter als gd-1.6 unterstützen GIF aber kein PNG. Neuere Versionen als gd-1.6 und ältere als gd-2.0.28 unterstützen PNG, aber kein GIF. In gd-2.0.28 gibt es erstmals wieder Unterstützung für GIF.

    Anmerkung: Seit PHP 4.3 ist eine Version der GD-Bibliothek in PHP enthalten. Diese gebündelte Version bietet zusätzliche Möglichkeiten, wie z.B. alpha blending und sollte der externen Version immer vorgezogen werden (der Code wird besser betreut und ist stabiler).


    Quelle: http://www.php.net/manual/de/ref.image.php

    Du musst aber folgendes bedenken: Wer benutzt im wbb2 den Standardstyle? Fast niemand. Daher finde ich diese Diskussionen eigentlich sinnlos. Viel wichtiger ist, was man aus dem wbb3 programmiertechnisch alles herrausholen kann. Wenige Wochen nach dem Release der wbb3 beta werden viele Designs von mygen o.ä kommen. Der Standardstyle ist nur ein Featue, was am Anfang benötigt wird und als solches sollte es auch gesehen werden.