2Break Posted May 7, 2011 Report Share Posted May 7, 2011 @meisterengel Da auch "Sonderzeichen" geblockt werden... ... ist allerdings das Thema "Mail Injection" unbedingt zu beachten. Das Kontaktformular wird oft zum Hacken eines Shops missbraucht, deshalb wird das Kontaktformular extra scharf gefiltert (Sonderzeichen, etc.). Auf die Anregungen im Forum wurde anscheinend reagiert und die Schadcode-Filter das Kontaktformular von Veyton 4.0.14 angepasst. Link to comment Share on other sites More sharing options...
flavor Posted May 7, 2011 Report Share Posted May 7, 2011 Un wo bekommt man dieses Update? Der Shop sagt, es ist kein Update verfügbar! Link to comment Share on other sites More sharing options...
2Break Posted May 7, 2011 Report Share Posted May 7, 2011 Das 4.0.14 Update ist -wie jedem bekannt- überfällig. Es gibt im Netz ein Update-Preview für das xt-default Template von einem Template-Designer. Habe im Forum bereits darüber gepostet Link to comment Share on other sites More sharing options...
flavor Posted May 7, 2011 Report Share Posted May 7, 2011 Ja danke. Habe mich gerade durch Forum gewühlt. Ich warte schon seit einem Jahr auf die Behebung des Fehlers, dann kann ich ja auch noch ein weiteres Jahr warten... einfach nur ärgerlich! Link to comment Share on other sites More sharing options...
leverage Posted May 8, 2011 Report Share Posted May 8, 2011 @2Break, wo wurde dies diskutiert? Über den angegebenen Link findet sich nichts. Link to comment Share on other sites More sharing options...
2Break Posted May 8, 2011 Report Share Posted May 8, 2011 geschrieben von Oliver Förster: Ich habe eine Anleitung für das Update xt_default Template der neuen VEYTON Version von 4.13 auf 4.14 (Community Edition) geschrieben. Die Anleitung ist ohne Gewähr auf Richtigkeit und Vollständigkeit. Die Änderungen führen Sie auf eigene Verantwortung durch. Download-Link hier. Link to comment Share on other sites More sharing options...
flavor Posted June 10, 2011 Report Share Posted June 10, 2011 Gibt es schon was neues? Die Bemerkung ist bei uns ein fester Bestandteil der Bestellung und sehr wichig für uns. Wird daran gearbeitet oder nicht? Link to comment Share on other sites More sharing options...
milganti Posted July 13, 2011 Report Share Posted July 13, 2011 So, ich hab da jetzt nochmal ne weitere Stunde in diesem tollen Problem versenkt und es ist einfach nur Murks was die xt:Commerce jungs sich da zusammengeschraubt haben. In xtFramework/security_handler.php wird in der Zeile 58 der Post Wert gefiltert. Darum kommt dann auch schon gar nichts mehr beim Kontaktformular an wenn es nicht durch den filter kommt. Ist zwar eine nette idee Post generell abzusichern, ABER wenn man die Filterklasse versaut bringt es nichts. Und noch bescheidener ist es wenn man eben diese verschlüsselt. Also wer diese Zeile rausnimmt hat alles ungefiltert, dann funktioniert das ganze zwar aber der Shop ist offen wie ein Scheunentor. Wenn man das ganze aber nun so abändert: $customer_message = $_POST['customer_message']; if ($post_filter) $_POST = $filter->_filterXSS($_POST); $_POST['customer_message'] = $customer_message;[/PHP] Dann wird der filter für die customer_message umgangen und der rest ist sicher. Lediglich muss man nun nochmal für customer_message einen eigenen filter schreiben. Aber dafür funktioniert der dann wohl auch Link to comment Share on other sites More sharing options...
sirius Posted August 9, 2011 Report Share Posted August 9, 2011 Hallo milganti, kannst du es genauer erklären welche Zeilen du mit was ersetzt hast. @ XT:Commerce - Peinlich, nicht nur für den Fehler, generell das Ihr eure Kunden so etwas anbietet als Shop der nicht einmal richtig funktioniert. Man könnte euch vergleichen wie ein 'billiger Autohändler' Kein wunder das Ihr den Shop kostenlos anbietet, da A) Kunden aus bleiben Genug Pfeffer schon um die Ohren bekommen habt, da eure Dienstleistung nicht erbracht wurden war. Auch ich habe bezahle Lizenzen hier! Und mein Kontaktformular funktioniert IMMER noch nicht! MACHT WAS! Das Geld habt Ihr auch eingesteckt! Link to comment Share on other sites More sharing options...
det1706 Posted August 9, 2011 Report Share Posted August 9, 2011 Suche: if ($post_filter) $_POST = $filter->_filterXSS($_POST);[/PHP]ersetze es mit: [PHP] $customer_message = $_POST['customer_message']; if ($post_filter) $_POST = $filter->_filterXSS($_POST); $_POST['customer_message'] = $customer_message; [/PHP] Bye Det Link to comment Share on other sites More sharing options...
sirius Posted August 9, 2011 Report Share Posted August 9, 2011 Hier sind die Forenuser schneller wie die Supporter... :/ Vielen Dank - funktioniert! Link to comment Share on other sites More sharing options...
flavor Posted August 9, 2011 Report Share Posted August 9, 2011 Hallo, wie sicher bzw. unsicher ist denn das ganze dann? Habe ich was zu befürchten? Beste Grüße Greg Link to comment Share on other sites More sharing options...
2Break Posted August 9, 2011 Report Share Posted August 9, 2011 wie sicher bzw. unsicher ist denn das ganze dann? Hallo, einfach formuliert: alles geht ueber die $customer_message rein, egal ob von Freund oder Feind. Link to comment Share on other sites More sharing options...
milganti Posted August 11, 2011 Report Share Posted August 11, 2011 Ich habe das ganze bei mir mittlerweile so: // Filtern wenn gewünscht if ($post_filter) { // customer message tmp mäßig zwischenspeichern $customer_message = $_POST['customer_message']; // Original Filterbefehl von xt:Commerce $_POST = $filter->_filterXSS($_POST); if($customer_message) { // customer message selber filtern $customer_message = strip_tags($customer_message); // Tags entfernen $customer_message = preg_replace ("/([\r\n])\.([\r\n])/", "$1..$2", $customer_message); // einzelnen punkt ersetzen $customer_message = trim($customer_message, ".\n"); $customer_message = trim($customer_message, "\n."); // customer message zurückschreiben $_POST['customer_message'] = $customer_message; } }[/PHP] Zur erklärung: Erst wieder die Nachricht gesichert, dann wird normal alles was über Post kommt gefiltert. Anschließend werden wenn eine Nachricht übermittelt wurde aus dieser alle Tags entfernt. Da das ganze hier nicht in eine Datenbank kommt sondern nur als Mail weiter verschickt wird sollte das ganze zur Sicherheit genügen. Darüber hinaus werden alleinstehende Punkte entfernt (also in einer Zeile). Denn dieses könnte bei einigen Mailservern zu Fehlern führen. Zum schluß wird das ganze wieder zurückgeschrieben sodass das Kontakformular damit arbeiten kann. Link to comment Share on other sites More sharing options...
det1706 Posted August 11, 2011 Report Share Posted August 11, 2011 Saubere Arbeit funktioniert. Danke Link to comment Share on other sites More sharing options...
2Break Posted August 11, 2011 Report Share Posted August 11, 2011 Hallo, jeder Shopbetreiber ist für sich selbst verantwortlich. Eine Anmerkung zur der Funktion _filterXSS, die Abkürzung XSS steht für Cross-Site Scripting. Über das Thema XSS gibt es etliche Infos und Filme (youtube). Link to comment Share on other sites More sharing options...
flavor Posted September 7, 2011 Report Share Posted September 7, 2011 Hallo nochmal, mir wurde vor kurzem bestätigt, dass das leere Kontaktformular welches z.B. durch " und ' usw. verursacht worden war, durch das Update 4.0.14 behoben worden ist. Leider hat sich mit dem neuem Update bei mir nichts geändert. Würde mich mal interessieren wem das Update hier geholfen hat, um evtl. Lösungsmöglichkeiten zu erörtern. Nach langem Ping Pong mit den Mitarbeitern von Xt:Commerce, sind diese dazu geneigt den Fehler bei mir zu suchen (da sie diesen Fehler nicht reproduzieren können), und können mir ohne zusätzliche Kosten leider nicht weiterhelfen. Um wirklich alles auszuschließen, Plugins, Datenbank, Templates usw., habe ich ausnahmslos alles gelöscht und den kompletten Shop 4.0.14 neu Installiert (ohne irgendwelche Extras, praktisch nackt) und eine neue Datenbank eingerichtet. Der Fehler bleibt und ich bin Ratlos. @milganti Ich habe deinen Code in die Zeile 68 beim security_handler.php (Version 4616 2011-03-30) eingefügt und somit die Zeile 68 if ($post_filter) $_POST = $filter->_filterXSS($_POST);[/PHP]ersätzt. [PHP]@version $Id: security_handler.php 4616 2011-03-30 16:57:41Z mzanier $ defined('_VALID_CALL') or die('Direct Access is not allowed.'); require_once _SRV_WEBROOT._SRV_WEB_FRAMEWORK.'classes/class.filter.php'; $filter = new filter(); $_GET = $filter->_filterXSS($_GET); if(USER_POSITION!='admin'){ $post_filter = true; if (isset($_GET['page']) && isset($_GET['page_action'])) { if ($_GET['page']=='callback') { // check if plugin extists! $_pagename=$filter->_filter($_GET['page_action'],'pagename'); $_file = _SRV_WEBROOT.'plugins/'.$_pagename.'/callback/class.ip_restriction.php'; if (file_exists($_file)) { include $_file; $_class = $_pagename.'_ip'; $_ip_restriction = new $_class; if ($_ip_restriction->_allowedIP()) { $post_filter=false; } else { $log_data = array(); $log_data = array(); $log_data['module'] = 'callback'; $log_data['class'] = 'error'; $log_data['error_msg'] = 'Callback IP Blocked'; $log_data['error_data'] = serialize(array('Unallowed IP'=>$_SERVER['REMOTE_ADDR'],'payment_class'=>$_pagename)); $log_data['transaction_id']=''; $db->AutoExecute(TABLE_CALLBACK_LOG,$log_data,'INSERT'); die('Access to the Service is not allowed from your IP Address'); } } } } // cao exception if (strstr($_SERVER['PHP_SELF'],'cronjob.php') && isset($_POST['action']) && isset($_GET['password']) && isset($_GET['user'])) $post_filter=false; // Filtern wenn gewünscht if ($post_filter) { // customer message tmp mäßig zwischenspeichern $customer_message = $_POST['customer_message']; // Original Filterbefehl von xt:Commerce $_POST = $filter->_filterXSS($_POST); if($customer_message) { // customer message selber filtern $customer_message = strip_tags($customer_message); // Tags entfernen $customer_message = preg_replace ("/([\r\n])\.([\r\n])/", "$1..$2", $customer_message); // einzelnen punkt ersetzen $customer_message = trim($customer_message, ".\n"); $customer_message = trim($customer_message, "\n."); // customer message zurückschreiben $_POST['customer_message'] = $customer_message; } } $_COOKIE = $filter->_filterXSS($_COOKIE); ?>[/PHP] Der Code funktioniert offenbar wie er soll. Es werden z.B. > rausgelöscht und alle Nachrichten mit " ' usw. übertragen, allerdings geht das nur beim Kontaktformular. [b]Aber[/b] bei der "Bemerkung" innerhalb des Bestellvorgangs ändert sich nichts. Kannst du mir vielleicht sagten ob du da auch was gemacht hast und ob es bei dir klappt. vielen Dank! Link to comment Share on other sites More sharing options...
J_Kroeger Posted September 21, 2011 Report Share Posted September 21, 2011 Moin, wir haben eine Lösung für den Fehler gefunden. Ihr müsst eure PHP Einstellungen ändern. In der php.ini muss magic_quotes_gpc auf On gestellt werden Vergesst danach den Webserver restart nicht Mfg Julius Link to comment Share on other sites More sharing options...
flavor Posted September 21, 2011 Report Share Posted September 21, 2011 @J_Kroeger Das ist wirklich unglaublich, es funktioniert, nach so langer Zeit und nervenaufreibenden 13 Monaten. Vielen Dank! Danke auch an die Bemühungen von Xt: Commerce Team. Es kommen jetzt alle Nachrichten durch, sowohl bei Kontakt als auch beim Bemerkungsfeld. Bei den Problemzeichen " ' \ setzt er jetzt immer \ davor, aber diese werden überhaupt angezeigt. Vielen herzlichen Dank nochmal, großartige Arbeit. Link to comment Share on other sites More sharing options...
maxmeier Posted September 24, 2011 Report Share Posted September 24, 2011 Hallo Danke für die Info für die welche die php.ini nicht editieren können, ich habe in der .htaccess folgendes eingefügt. php_flag magic_quotes_gpc On funktioniert. Bei Zeichen wie <,> kommt die Nachricht leer an. Gruß MM Link to comment Share on other sites More sharing options...
det1706 Posted September 24, 2011 Report Share Posted September 24, 2011 Diese Zeichen werden bei mir rausgefilter, auch wenn Sie in einer Nachricht stehen. Link to comment Share on other sites More sharing options...
leverage Posted September 24, 2011 Report Share Posted September 24, 2011 OK Leute - ist ja schön und gut. Diese Maßnahme der kastrierterten Nachrichten diente ja auch zum Schutz vor Schadcode. Wie ist es mit der Shop-Sicherheit vor Schadcode über das Formular wenn man das Kontaktformular so hart öffnet? Link to comment Share on other sites More sharing options...
flavor Posted September 26, 2011 Report Share Posted September 26, 2011 OK Leute - ist ja schön und gut. Diese Maßnahme der kastrierterten Nachrichten diente ja auch zum Schutz vor Schadcode. Wie ist es mit der Shop-Sicherheit vor Schadcode über das Formular wenn man das Kontaktformular so hart öffnet? Wenn du sagen willst das "magic_quotes_gpc" nicht mehr den aktuellen Sicherheitsstandards entspricht und sowieso mit PHP 6 Geschichte ist, dann hast du wohl Recht. Aber was soll man denn sonnst machen? Was passiert eigentlich wenn man "magic_quotes_gpc" aktiviert, wird es dem eigenem Veyton Filter übergeordnet? Werden die Nachrichten doppelt maskiert? Wie sieht es eigentlich mit "mysql_real_escape_string" aus, kann man das für sich nutzen, wenn ja, wo am besten einsetzten? Link to comment Share on other sites More sharing options...
DrakeMage Posted November 13, 2012 Report Share Posted November 13, 2012 Wenn du sagen willst das "magic_quotes_gpc" nicht mehr den aktuellen Sicherheitsstandards entspricht und sowieso mit PHP 6 Geschichte ist, dann hast du wohl Recht. Aber was soll man denn sonnst machen? Was passiert eigentlich wenn man "magic_quotes_gpc" aktiviert, wird es dem eigenem Veyton Filter übergeordnet? Werden die Nachrichten doppelt maskiert? Wie sieht es eigentlich mit "mysql_real_escape_string" aus, kann man das für sich nutzen, wenn ja, wo am besten einsetzten? Die Sicherung durch die Funktion "mysql_real_escape_string" wird nur dann benötigt, wenn du (wie der Name schon sagt) die Daten an eine Datenbank übergibst bzw. im Zusammenhang mit einem Datenbankzugriff diese Daten verwendest. Das ist derzeit bei XTC nur dann der Fall, wenn du die Filter für die Bestellungs-Bemerkung ändern willst. Die bisher genannten Änderungen für die "Customer_Message" umgehen den Filter für eine per E-Mail abgeschickte Information. Dort haben Hacker (meines Wissens nach) keinen Zugriff auf die Datenbank. Es wäre zwar eine zusätzliche Sicherheitsmaßnahme die im Grunde nicht schadet, aber dafür darfst du dann in der E-Mail auch preparierte Anführungszeichen/Hochkommas vorfinden (also alle " sind \" und ' werden zu \'). Schönen Gruß, Simon Link to comment Share on other sites More sharing options...
Nordin Posted January 15, 2013 Report Share Posted January 15, 2013 Hallo zusammen, heute bin ich auch auf dieses Problem gestoßen. Erstmal zu mysql_real_escape_string dies wird dort nicht benötigt, da VEYTON scheinbar alles von Haus aus escaped was an die DB geschickt wird. Alle die bis hier her gelesen haben, haben sicher festgestellt, dass der Fehler nicht nur im Kontaktformular auftritt, sondern auch im Feld Bemerkungen beim Bestellprozess. Da es keine komplette Lösung gab, habe ich selber eine geschrieben. Hier geht es zu meiner Lösung: http://www.xt-commerce.com/forum/fragen-zur-software/95541-l-sung-kontaktformular-und-bemerkung-leer.html Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.