#966 closed Bug/Fehler (fixed)
xss_secure.php
| Reported by: | Volker Strähle | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.1.0 |
| Component: | Sicherheit | Version: | 2.0.0.0 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Kann es sein, dass die Funktion zum Versand der Mail an den Admin im Angriffsfall fehlt?
Geloggt wird das, aber eine Mail habe ich nicht bekommen.
Attachments (0)
Change History (10)
comment:1 by , 9 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
comment:2 by , 9 years ago
Das ist genau der Grund warum ich schon mal vorgeschlagen habe eine Fallback-config in Dateiform zu haben. So kann immer die Mail eines Admins gelesen werden und auch bei DB-Problemen trotzdem eine Mail gesendet werden. Etwa auch wen der Verbindungsaufbau zum DB-Server fehl schlägt.
comment:3 by , 9 years ago
| Milestone: | modified-shop-2.0.1.0 → modified-shop-2.1.0.0 |
|---|---|
| Resolution: | wontfix |
| Status: | closed → reopened |
Keine schlechte Idee. Ich verschiebe das Ticket mal nach 2.1.0.0
comment:4 by , 9 years ago
Ich hatte für die Rev 8016 mal folgendes:
autoinclude im Adminbereich:
if ($PHP_SELF == DIR_WS_ADMIN."configuration.php"){
// Save Config to file - 2015-01-23, webald
$fp=fopen(DIR_FS_DOCUMENT_ROOT.'/includes/temp_config.php','a');
fwrite($fp,"<?php");
fwrite($fp,"\r\n");
$vs_configuration_query = xtc_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from '.TABLE_CONFIGURATION);
while ($vs_configuration = xtc_db_fetch_array($vs_configuration_query)) {
fwrite($fp,"if(!defined('".$vs_configuration['cfgKey']."')){");
fwrite($fp,"define('".$vs_configuration['cfgKey']."', '".stripslashes($vs_configuration['cfgValue'])."');");
fwrite($fp,"}");
fwrite($fp,"\r\n");
}
fwrite($fp,"?>");
fclose($fp);
$rows1 = file(DIR_FS_DOCUMENT_ROOT.'/includes/temp_config.php');
if(file_exists(DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php')){
$rows2 = file(DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php');
$diffRows = array_diff($rows1, $rows2);
if(count($diffRows)>0){
chmod(DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php',0644);
unlink(DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php');
}
}
rename(DIR_FS_DOCUMENT_ROOT.'/includes/temp_config.php', DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php');
chmod(DIR_FS_DOCUMENT_ROOT.'/includes/current_config.php',0444);
}
In xtc_db_connect() wird dann ggf. die Ersatzconfig geladen und Fehler konnten abgeschickt werden.
Für xss_secure wäre das zu spät. Unter diesem Geschtspunkt wäre es besser bestimmte Basis-Daten wie Webmaster-Email oder Telefon in eine Notfall-Config auszulagern.
comment:5 by , 9 years ago
Das Problem ist mir auch schon aufgefallen.
Es müsste eigentlich nur die configure.php vor der xss_security geladen werden, dann können ein oder zwei Konstanten in die configure.php mit aufgenommen werden.
In der xss_security wird die Mail-Funktion vom vorhanden sein der Konstanten abhängig gemacht.
comment:6 by , 9 years ago
Hätte da noch einen Vorschlag:
Neue configuration-group "99". Alles in "99" wird bei jeder Änderung im BE in eine emergency-config.php geschrieben (Code etwa wie oben). Diese Date wird immer als erstes in application_top geladen. Alle Einstellungen in Gruppe 99 werden somit aus der Datei unabhängig der DB geladen und können genutzt werden.
Beim späteren Laden der normalen Config wird alles außer 99 geladen.
Steuerung übers BE möglich.
Fertig!
comment:7 by , 9 years ago
@h-h-h
die xss_secure wird bewusst vor allem anderen geladen und keine DB Verbindung gemacht. Ich könnte mir durchaus eine Lösung wie webald es geschrieben hat vorstellen.
comment:8 by , 9 years ago
Ich dachte ich muss es nicht erwähnen, doch es gibt keinen Angriffsvektor über die configure.php in dem Zusammenhang und eine Datenbankverbindung gibt es an der Stelle auch noch nicht.
comment:10 by , 7 years ago
| Milestone: | modified-shop-2.1.0.0 → modified-shop-2.0.1.0 |
|---|

zum Zeitpunkt der Ausführung ist keine Datenbankverbindung vorhanden, wodurch wir auch keine eMail Adresse haben.