---
title: "WYSIWYG Editor Sicherheit"
url: "https://www.typo3.net/d/126428-wysiwyg-editor-sicherheit"
source: "typo3.net"
tags: ["Extensions","Frage","PHP","Sicherheit","TYPO3 7"]
created: "2017-11-22"
last_reply: "2017-11-24"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# WYSIWYG Editor Sicherheit

Extensions · 2 Antworten · gestartet 2017-11-22

## Eröffnungsbeitrag

**Power-Poler** · 2017-11-22 · [Beitrag #1](https://www.typo3.net/d/126428-wysiwyg-editor-sicherheit/1)

Guten Tag,
ich nutze den TinyMCE Editor im Frontend. Jetzt wäre da die Frage der Sicherheit.
Habe gelesen, wenn man JavaScript Deaktiviert, und direkt im Textfeld <script> verwändet, dass dieser Code ausgeführt wird. Und siehe da, eine alert Box erscheint auf der Startseite. Geil.
Leite jetzt den kompletten Code über folgende Funktion:

```php
private function removescript(string $bodyText){
	$event = array(
		'onafterprint',
		'onbeforeprint',
		'onbeforeunload',
		'onerror',
		'onhashchange',
		'onload',
		'onmessage',
		'onoffline',
		'ononline',
		'onpagehide',
		'onpageshow',
		'onpopstate',
		'onresize',
		'onstorage',
		'onunload',
		'onblur',
		'onchange',
		'oncontextmenu',
		'onfocus',
		'oninput',
		'oninvalid',
		'onreset',
		'onsearch',
		'onselect',
		'onsubmit',
		'onkeydown',
		'onkeypress',
		'onkeyup',
		'onclick',
		'ondblclick',
		'onmousedown',
		'onmousemove',
		'onmouseout',
		'onmouseover',
		'onmouseup',
		'onmousewheel',
		'onwheel',
		'ondrag',
		'ondragend',
		'ondragenter',
		'ondragleave',
		'ondragover',
		'ondragstart',
		'ondrop',
		'onscroll',
		'oncopy',
		'oncut',
		'onpaste',
		'onabort',
		'oncanplay',
		'oncanplaythrough',
		'oncuechange',
		'ondurationchange',
		'onemptied',
		'onended',
		'onerror',
		'onloadeddata',
		'onloadedmetadata',
		'onloadstart',
		'onpause',
		'onplay',
		'onplaying',
		'onprogress',
		'onratechange',
		'onseeked',
		'onseeking',
		'onstalled',
		'onsuspend',
		'ontimeupdate',
		'onvolumechange',
		'onwaiting',
		'onshow',
		'ontoggle'
		);
		
	$newBodyText = str_replace('<script>', '&lt;script&gt;', $bodyText);
	$newBodyText = str_replace('</script>', '&lt;/script&gt;', $newBodyText);
	$newBodyText = str_replace($event, 'nichts', $newBodyText);
	
	return $newBodyText;

}
```

Was meint ihr? Gibt es weitere Befehle, die ich abfangen muss? Gibt es überhaupt eine Möglichkeit einen Editor dieser Art sicher zu bekommen? Kennt ihr alternativen?

## Antworten

### [#2](https://www.typo3.net/d/126428-wysiwyg-editor-sicherheit/2) · Norman2k · 2017-11-23

Da gibt es doch auch schon fertige Sachen, z.B. <https://github.com/cure53/DOMPurify>

### [#3](https://www.typo3.net/d/126428-wysiwyg-editor-sicherheit/3) · Power-Poler · 2017-11-24

Danke für deine Antwort.
Das ist doch auch nur JavaScript, oder sehe ich das falsch?
Dann könnte man ja immer noch mit Deaktivierten JavaScript und direkter Eingabe in das Textfeld, code einschleusen.

Bräuchte ne PHP Lösung.

```php
	$newBodyText = str_replace('<script>', '&lt;script&gt;', $bodyText);
	$newBodyText = str_replace('</script>', '&lt;/script&gt;', $newBodyText);
	$newBodyText = str_replace('<link', '&lt;link', $newBodyText);
	$newBodyText = str_replace('<meta', '&lt;meta', $newBodyText);
	$newBodyText = str_replace('<style', '&lt;style', $newBodyText);
	$newBodyText = str_replace('<html', '&lt;html', $newBodyText);
	$newBodyText = str_replace('<body>', '&lt;body&gt;', $newBodyText);
	$newBodyText = str_replace('<iframe', '&lt;iframe', $newBodyText);
	$newBodyText = str_replace('<embed', '&lt;embed', $newBodyText);
	$newBodyText = str_replace($event, 'nichts', $newBodyText);
	return strip_tags($newBodyText,'<p><a><span><img><h1><h2><h3><h4><h5><h6><em><strong><sup>');
```

Habe jetzt noch das ergänzt. Soll heißen, wer "normalen" ausführbaren Code Postet, bekommt diesen am Ende auch Angezeigt, als Text halt. Wer groß und Kleinschreibung etc. ausnutzt, bekommt nichts mehr angezeigt. Wird zwar nicht alles Abdecken, sollte aber für meine Zwecke reichen.
Für Ideen, wie ich mein System austricksen kann, bin ich offen. :D
*str_replace durch str_ireplace ersetzt
Und ich bin mir bewusst, was es heißen kann img und a Tags zu erlauben, und was die von wo auch immer laden könnten.

---

Quelle: „WYSIWYG Editor Sicherheit“, typo3.net, https://www.typo3.net/d/126428-wysiwyg-editor-sicherheit
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
