Hallo Joffm,
0. Danke für die Idee mit dem Umschalten, ich habe auf reinen Quell-Editor umgestellt, leider ist das ebenfalls wirkungslos. Auch da ist es beim Speichern sofort weg.
1. Ich möchte es nochmals zum Verständnis explizit anführen: es geht nicht um das normale Verlinken von Images aus den Resources oder extern etc., sondern um das tatsächliche Einbettenh direkt über src="data:image/png;base64,......" d..h. keine src="http://" oder src="/pfad/". Die Größe ist kein Problem, das Bild ist 64KB groß.
Es kommt das heraus
<p><img align="left" height="142" hspace="12" style="width:.7291in;height:1.4791in" width="70" /></p>
wenn es vorher so war, wie untenstehend
<p><img align="left" height="142" hspace="12" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ0AAAIjCAYAAAAZXE7TAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAPzISURBVHhe7P13mCVXdbYP+4/vfQ1KI03W5OnpnMP05DwaTVJEEkokE02SwIAxYHI00WRMMiByEEGIIBOFRcaAsIlGGXB6MbbfHH717Xudfs6s3r1PPt3ndHf1dT1Xna6wq2rXXnetvXao37vzzjuz+aq777471xzonnvuye69995cC1A829QzL6ccGrkqKofGwlUOjVyzohwaC1eLAhp33XVXUakbylW/KECllCpwuea/Us9aSpURNK+gkYNi9kQhSRWqXItXqXKCcmjkMuXQyBUrVU7QvIBGXiVprrwL6pUqOLkWr1JlBLU9NHJQNFc89FQByZWrWrUUGnfccce03ynddRetJIBjpqZ7INUqbUytUer6ZkOnzlmAxuzLv5nKKVUoCyqdlt9WSvExJcW+Umq75PZLnQ8lj5vStP28ZuxXeMPPzI/2UUuh8ctf/rIIhjvu+EVp3ZlQtM+dd/...usw. usw. "/>"
2. Damit normale Resources eingebettet würden, müsste man meines Wissens den phpmailer umkonfigurieren d.h. cdi-Attachments etc., was ja in der Cloud nicht geht. Wenn das gehen sollte, sehr gerne, bin für jeden Hinweis dankbar.
3. Ich habe die ursprünglich auslösende Stelle für das Problem im lokalen SourceCode gefunden; die Quellcode-Kette ist
Code:
index.php -> EmailTemplates.php ->SurveyLanguageSetting.php -> LSActiveRecord.php -> CActiveRecord.php -> CModel.php -> (über createValidators()->rules() etc) -> LSYii_Validators.php -> $allowDataURI = false
d.h. in Version 6.11. und 6.12.
Wenn ich dort auf
Code:
public $allowDataUri = true;
setze, läuft es astrein durch. Leider hilft mir das für die Cloud Lime Survey nichts, weil ich den Code dort nicht ändern kann.
4. Wie in diesem Code-Stück ersichtlich, ist die Prüfung auch unabhängig vom xss filter
Code:
//class LSYii_Validators.....
protected function validateAttribute($object, $attribute)
{
if ($this->xssfilter) { //<------ XSS wird hier geprüft
$object->$attribute = $this->xssFilter($object->$attribute);
if ($this->isUrl) {
if (self::isXssUrl($object->$attribute)) {
$object->$attribute = "";
}
}
}
// Note that URL checking only checks basic URL properties. As a URL can contain EM expression there needs to be a lot of freedom.
if ($this->isUrl) {
if ($object->$attribute == 'http://' || $object->$attribute == 'https://') {
$object->$attribute = "";
}
}
if ($this->isLanguage) {
$object->$attribute = $this->languageFilter($object->$attribute);
}
if ($this->isLanguageMulti) {
$object->$attribute = $this->multiLanguageFilter($object->$attribute);
}
if (!$this->allowDataUri) { //<----- HIER
$object->$attribute = $this->dataUriFilter($object->$attribute);
}
5. Mein Problem besteht also weiterhin.
Grüße
Martin