[TYPO3-german] Powermail 1.6 die letzte … Problem mit &

Peter Linzenkirchner liste at lisardo.de
Tue Aug 20 18:21:56 CEST 2013


Hallo, 

ich weiß, die Extension ist schon etwas in die Jahre gekommen :-)
Leider habe ich mehrere Hundert Formulare damit, und kann die momentan nicht tauschen gegen die neue Extension, also bin ich auf die Suche gegangen. 

Das Problem liegt - wie zu erwarten - in einem doppelten htmlspecialchars. 

in der tx_powermail_pi1 gibts diese Zeile: 
$this->piVars = $this->div->sec($this->piVars);
die Methode sec lässt über alle piVars htmlspecialchars laufen. Das ist natürlich das Security-Herz der Extension, daran darf man nichts ändern. 

Danach werden alle Werte in die Session geschrieben, die Werte in der Session sind also alle mit htmlspecialchar behandelt. 

in der Datei tx_powermail_html.php in Zeile 1189 steht dann das hier: 

if (isset($this->sessionfields['uid' . $this->uid]) && !is_array($this->sessionfields['uid' . $this->uid])) { // 1. if value is in session
$this->markerArray['###VALUE###'] = 'value="' . htmlspecialchars(stripslashes($this->div->nl2nl2($this->sessionfields['uid' . $this->uid]))) . '" ';

und da ist der Übeltäter, der die Sessionwerte, die ja bereits alle escaped sind, nochmals escaped. Hier muss einfach das htmlspecialchars raus, dann funktioniert es. 

Interessanterweise muss sich das schon lang in Powermail befinden, ich bin bis Version 1.6.5 runter, immer das gleiche Problem. 

---

Kaum weiß man wo der Fehler liegt, findet man das Problem sogar im Bugtracker: 

http://forge.typo3.org/issues/38043

:-/

Falls noch jemand das Problem hat, kann er das Problem mit meiner Lösung fixen. Ansonsten soll es offenbar mit der 1.7.0 gefixt werden. 

Viele Grüße
Peter 



Am 19.08.2013 um 11:22 schrieb Peter Linzenkirchner <liste at lisardo.de>:

> Hallo Liste, 
> 
> ich habe in einer Installation noch alte Powermail-Formulare drin. Die letzten Sicherheitsupdates haben leider ein Problem gebracht: 
> 
> Wenn der Besucher eine &-Zeichen eingibt (z. B. im Firmennamen), das Formular absendet und es zurückbekommt, weil er etwas nicht ausgefüllt hat, dann erhält er seinen Firmennamen jetzt mit &amp; - logisch, hier ist htmlspecialchars am Werk. 
> 
> Besonders peinsam wirds, wenn man das mehrmals machen muss, dann hat man irgendwann sowas im Feld stehen: 
> 
> Hans &amp;amp;amp; Dampf
> 
> :-)
> 
> Was könnte man gegen das Problem unternehmen, ohne eine Sicherheitslücke einzubauen?
> 
> 
> Danke
> Peter
> 
> --
> Xing: http://www.xing.com/profile/Peter_Linzenkirchner
> Web: http://www.typo3-lisardo.de
> Facebook: http://tinyurl.com/lisardo-multimedia
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

--
Xing: http://www.xing.com/profile/Peter_Linzenkirchner
Web: http://www.typo3-lisardo.de
Facebook: http://tinyurl.com/lisardo-multimedia



More information about the TYPO3-german mailing list