Upload via GUI (396 Dateien)

This commit is contained in:
2026-11-04 07:55:36 +00:00
parent 65d42108db
commit 58a8fab9f5
11 changed files with 1035 additions and 1 deletions
@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
/**
* Prüft die Erkennung von HTML in Nachrichten: Eine Adresse in spitzen Klammern ("Von: Name <name@example.de>") ist kein HTML.
* Wurde sie dafür gehalten, zeigte DeskHub den Text als HTML an und alle Zeilenumbrüche gingen verloren.
*/
putenv('DESKHUB_TESTING=1');
putenv('DESKHUB_SQLITE_PATH=:memory:');
require_once dirname(__DIR__) . '/includes/bootstrap.php';
$failures = [];
$check = function (bool $ok, string $what) use (&$failures): void {
if (!$ok) $failures[] = $what;
};
$text = [
"und de nächste Teil\n\nGesendet: Sonntag\nVon: Windelgeschichten <einsendungen@windelgeschichten.org>\nAn: \"Olaf Andresen\" <olaf.andresen@gmx.de>",
'Antwort an Olaf <olaf@gmx.de>',
'Bitte an <p.muster@example.de> senden',
'Kontakt: <b@example.de>',
'wenn a < b und c > d gilt',
'Preis <10 € und >5 €',
'Link: <https://example.de/seite>',
'<script>alert(1)</script>', // kein erlaubtes Tag: wird als Text (maskiert) angezeigt, also sicher
];
foreach ($text as $t) $check(!message_is_html($t), 'kein HTML: ' . substr($t, 0, 50));
$html = [
'<p>Hallo</p>', 'Zeile 1<br>Zeile 2', 'Zeile 1<br/>Zeile 2', 'Zeile 1<br />Zeile 2', '<div style="color:red">x</div>',
'<a href="https://example.de">Link</a>', 'Text</p>', '<B>fett</B>', '<o:p></o:p>', '<table><tr><td>x</td></tr></table>',
'<h3>Hallo</h3>', 'Text <span class="x">y</span>', '<ul><li>a</li></ul>', '<img src="cid:x" alt="image">',
"<html>\n<body>\n<p>x</p></body></html>",
];
foreach ($html as $h) $check(message_is_html($h), 'HTML: ' . substr($h, 0, 50));
if ($failures) {
fwrite(STDERR, "Fehlgeschlagen:\n - " . implode("\n - ", $failures) . "\n");
exit(1);
}
echo "Message HTML detection checks passed.\n";