Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Sicherheitspatch für alle Shopversionen (security_fix_2014_12_17.zip)

    h-h-h

    • modified Team
    • Beiträge: 4.563
    @h-h-h
    Mhh, mit dem Nachteil, daß viele Code-Stellen geändert werden müssten, denn die Session-Variable um die es hier ging heißt ja nun $_SESSION['customers_status']['customers_status_id'] und hieße dann $_SESSION['customers_status']['customers_status'].

    Naja, so ähnlich wird es in der nächsten Version schon gemacht, ging mir eigentlich nur um die gesparte Abfrage.

    Code: PHP  [Auswählen]
      if (isset($_SESSION['customer_id'])) {
        $customers_status_query_1 = xtc_db_query("SELECT customers_status
                                                    FROM "
    . TABLE_CUSTOMERS . "
                                                   WHERE customers_id = '"
    . $_SESSION['customer_id'] . "'");

        if (xtc_db_num_rows($customers_status_query_1) == 1) {
          $customers_status_value_1 = xtc_db_fetch_array($customers_status_query_1);

          $customers_status_query = xtc_db_query("SELECT *
                                                    FROM "
    . TABLE_CUSTOMERS_STATUS . "
                                                   WHERE customers_status_id = '"
    . $customers_status_value_1['customers_status'] . "'
                                                     AND language_id = '"
    . $_SESSION['languages_id'] . "'");

          $_SESSION['customers_status'] = xtc_db_fetch_array($customers_status_query);

          if ($customers_status_value_1['customers_status'] == '0' && !defined('RUN_MODE_ADMIN')) {
            $_SESSION['customers_status']['customers_status_id'] = DEFAULT_CUSTOMERS_STATUS_ID_ADMIN;
            $_SESSION['customers_status']['customers_status'] = $customers_status_value_1['customers_status'];
          } else {
            $_SESSION['customers_status']['customers_status_id'] = $customers_status_value_1['customers_status'];
            $_SESSION['customers_status']['customers_status'] = $customers_status_value_1['customers_status'];
          }
        } else {
          unset($_SESSION['customer_id']);
          xtc_redirect(xtc_href_link(FILENAME_LOGOFF, '', 'SSL'));
        }
      } else {
        $customers_status_query = xtc_db_query("SELECT *
                                                  FROM "
    . TABLE_CUSTOMERS_STATUS . "
                                                 WHERE customers_status_id = '"
    . DEFAULT_CUSTOMERS_STATUS_ID_GUEST . "'
                                                   AND language_id = '"
    . $_SESSION['languages_id'] . "'");

        $_SESSION['customers_status'] = xtc_db_fetch_array($customers_status_query);
        $_SESSION['customers_status']['customers_status_id'] = DEFAULT_CUSTOMERS_STATUS_ID_GUEST;
        $_SESSION['customers_status']['customers_status'] = DEFAULT_CUSTOMERS_STATUS_ID_GUEST;
      }


    EDIT:

    Somit könnte dies hier die beste Version sein (danke pl1, für die Idee):

    Code: PHP  [Auswählen]
         if (isset($_SESSION['customer_id'])) {
            $customers_status_query = xtc_db_query("
             SELECT c.customers_status, cs.*
               FROM "
    . TABLE_CUSTOMERS . " c
               JOIN "
    . TABLE_CUSTOMERS_STATUS . " cs
                 ON cs.customers_status_id = c.customers_status
              WHERE customers_id = "
    . $_SESSION['customer_id'] . "
                AND cs.language_id = "
    . $_SESSION['languages_id']);
            if (xtc_db_num_rows($customers_status_query)) {
              $_SESSION['customers_status'] = xtc_db_fetch_array($customers_status_query);
              if ($customers_status_query['customers_status'] == '0' && !defined('RUN_MODE_ADMIN')) {
                $_SESSION['customers_status']['customers_status_id'] = DEFAULT_CUSTOMERS_STATUS_ID_ADMIN;
              }
            } else {
              unset($_SESSION['customer_id']);
              xtc_redirect(xtc_href_link(FILENAME_LOGOFF, '', 'SSL'));
            }
          } else {
            $customers_status_query = xtc_db_query("
             SELECT *, customers_status_id as customers_status
               FROM "
    . TABLE_CUSTOMERS_STATUS . "
              WHERE customers_status_id = "
    . DEFAULT_CUSTOMERS_STATUS_ID_GUEST . "
                AND language_id = "
    . $_SESSION['languages_id']);
            $_SESSION['customers_status'] = xtc_db_fetch_array($customers_status_query);
          }
        ?>

    Gruß, h-h-h

    Archetim

    • Mitglied
    • Beiträge: 133
    Danke für die Info auch von uns.

    Grüße
    Rene

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    :thx:

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Moin!

    Auch von mir, vielen Dank für das Bereitstellen des Patches.

    Weihnachtliche Grüße
    Peter

    kaisa

    • Schreiberling
    • Beiträge: 366
    Patch hätte ich mir schenken können, da ich Kundengruppen aktiv habe. Nun ja. Drin ist drin.

    Ich beschränke mich lieber auf offizielle Patches, denn ich kann den Diskussionen nicht folgen, was denn nun sinnvoll/richtig/funktionierend ist. Sonst baue ich etwas ein und n paar Stunden später wird das revidiert.

    Danke und n paar schöne Feiertage.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Hättest du dir nicht schenken können, denn 1. kann es ja mal sein, daß du irgendwann doch keine Kundengruppen mehr aktiviert hast und bis dahin vergessen hast was hier das Thema ist und 2. kommt anstelle der Sichtbarkeit der Admin-Box eine MySql-Fehlermeldung wenn du Kundengruppen aktiviert hast und jemand die Lücke ausnutzen möchte.

    Der Diskussion hier mußt du ja auch nicht folgen, der Patch in Post 1 ist ja offiziell, was also ist das Problem ?

    Gruß,
    noRiddle

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    Auch nach vier Wochen ist der Sicherheitspatch im Download nicht enthalten.
    Manchmal tun mir die Händler, die sich das selbst herunterladen, echt leid  :crazy:

    Jami

    • Neu im Forum
    • Beiträge: 19
    • Geschlecht:
    Hallo,

    ich habe mir einige Threads durchgelesen, unter Anderem auch diesen hier.
    Den Patch/Fix/wie auch immer man das nennen mag habe ich umgesetzt.

    Ich habe allerdings weiterhin folgendes Problem (vermischte Bestellungen): Vermischte Bestellungen [kritisch] was ich mittlerweile auf den hier beschriebenen Fehler zurückführe.

    Warum ich hier rein schreibe: Ich habe keine Möglichkeit zu testen ob dieser Fehler behoben wurde, da wir diesen als kritisch ansehen (Kunden erhalten Daten von anderen Kunden) wäre ich sehr dankbar über eine Antwort wie sich eben diese Problematik testen lässt. Wenn nicht öffentlich dann wäre ich auch über eine persönliche Nachricht sehr sehr dankbar.

    Ich verzweifle langsam an diesem mysteriösen Fehler.

    Morka

    • Fördermitglied
    • Beiträge: 78
    [...]
    Ich habe allerdings weiterhin folgendes Problem (vermischte Bestellungen): Vermischte Bestellungen [kritisch] was ich mittlerweile auf den hier beschriebenen Fehler zurückführe.

    Warum ich hier rein schreibe: Ich habe keine Möglichkeit zu testen ob dieser Fehler behoben wurde, da wir diesen als kritisch ansehen (Kunden erhalten Daten von anderen Kunden) wäre ich sehr dankbar über eine Antwort wie sich eben diese Problematik testen lässt. [...]

    "Wir" heißt ein Team?!
    EINE ERSTE Möglichkeit zum Testen könnte sein, dass "Ihr" euch mit euren Email-Konten jeweils ein Test-Kundenkonto erstellt und Testbestellungen macht - oder wenn Du - vermutlich - auch mehrere Email-Konten hast, kannst Du dass natürlich alleine mit mehreren Testkonten testen ...

    Viele Grüße

    Morka
    Shop Hosting