Benutzereingabe & 'gefährliche tags'

Hallo!

Ich will meinen Benutzern ermöglichen, den (html)-quelltext ihrer von php-Seiten selbst zu verändern und ihnen dabei so viel Freiraum wie möglich lassen.

Da stellt sich die Frage: Welche tags etc muss ich der Sicherheit halber aus der Eingabe weg-ereg-replacen? <?php ... ?> steht da natürlich an erster Stelle. Aber was könnte noch gefährlich werden?

Das Einbinden von cgi’s und applets? Warscheinlich auch von Flash? Wie gehe ich dabei am besten vor? Am liebsten wäre es mir natürlich, bei allem auf den einleitenden und beendenden Tag zu achten, womit alles in ein replace reinpassen würde. Aber überall ist das ja nicht möglich…

Ich hoffe, ich schaffe es, alle Sicherheitslücken zu schließen (Zugriff auf SQL, Dateistruktur etc). Danke schonmal für jede Hilfe!

sicherer wäre der andere weg
die eingabe durch ein htmlspecialchars zu jagen und dann die erlaubten tags durch html-konforme Zeichen ersetzen…

ansonsten ist die Frage was Du genau schützen willst und was dein Server alles kann…
wenn er cgi kann, dann sollte das dahingehend geblockt werden, allerdings frage ich mich wie das zeug auf Deinen Server kommen sollte, wenn du das nicht zulässt :wink:

 und \<script language...\>\</PRE\> tags könnten dem aufrufendem User schaden zufügen, aber ich denke mal dass es Dir darum nicht geht, oder? :wink:
Allerdings muss ich da noch was dazu sagen...

Wenn Du eine Datenbank verwendest, dann holst Du ja die kompletten eingaben da raus. ergo gibt es keinen Source-Code, der compiliert werden kann, sondern nur ausgaben... Sprich hier wäre keine Gefahr, dass jemand PHP-Code ausführt...
Wenn Du allerdings Daten auf Deinem Server speicherst und der Apache so konfiguriert ist dass er in diesem Dateityp php versteht, dann wiederum besteht eine Gefahr, für schädigenden code...

Hmmm, danke, da haste natürlich Recht! Wie immer versuch ich mal wieder das Pferd von hinten aufzuzäumen…

Naja, und was mit cgi etc möglich ist, da hab ich garkeine Ahnung. Wenn ich mir allein schon überleg, was ich bei PHP für Möglichkeiten kenn, auf fremden Seiten Schaden anzurichten (womit man sich ja zwangläufig beschäftigen muss, um seine eigenen Seiten sicher zu machen)…

Genauso siehts bei Flash aus.

Was kann mir denn passieren, wenn ich
a) Zulasse, Flash-Videos hochzuladen und einzubinden. Kann das Teil dann auf lokale Ordner zugreifen, sobald es auf dem Server ist?
b) Cgi’s, die auf fremden Servern liegen auszuführen. Kann da jemand was schummeln?
d) Java-Applets hochladen zu lassen is wohl GARNICH gut… aber wie siehts mit applets etc auf fremden Servern aus? Gibt doch ebstimmt etliche Schädliche, die darauf ausgerichtet sind, in fremde Seiten eingebunden INformationen zu sammeln oder Schaden anzurichten…?

Naja, und was mit cgi etc möglich ist, da hab ich garkeine
Ahnung. Wenn ich mir allein schon überleg, was ich bei PHP für
Möglichkeiten kenn, auf fremden Seiten Schaden anzurichten
(womit man sich ja zwangläufig beschäftigen muss, um seine
eigenen Seiten sicher zu machen)…

hm? auf fremden Seiten mit PHP Schaden anrichten? Fällt mir im Moment nichts ein, was man da gross machen könnte… Klär mich auf :smile:

Genauso siehts bei Flash aus.

bei flash hab ich nicht so wirklich Ahnung, was das alles kann und was nicht…

Was kann mir denn passieren, wenn ich
a) Zulasse, Flash-Videos hochzuladen und einzubinden. Kann das
Teil dann auf lokale Ordner zugreifen, sobald es auf dem
Server ist?

wenn es diese Zugriffsrechte hat, dann ja… Aber Du solltest mit chmod() die Zugriffsrechte ja auch einschränken können… evtl wäre es auch für Dich möglich mit virtuellen hosts oder wie das heisst zu arbeiten und die zugriffsrechte da dann zu limitieren, so dass man nur innerhalb dieses Bereiches überhaupt etwas beschädigen könnte…

b) Cgi’s, die auf fremden Servern liegen auszuführen. Kann da
jemand was schummeln?

ich kenn mich damit quasi nicht aus, aber muss ein cgi script nicht auch im entsprechenden Ordner liegen um zu funktionieren?

d) Java-Applets hochladen zu lassen is wohl GARNICH gut…

keine Ahnung was damit alles geht… solang Du sie aber nicht auf Deinem Server hast sollte das kein grosses Problem sein…
Was für einen Zweck soll denn Deine Seite mal haben? So etwas wie Beepworld?

Ich würde mal behaupten Flash und Java Applets sind ungefährlich, da sie auf den Client geladen und dort ausgeführt werden. Problematisch sind cgi-skripte, php dateien und sowas, also alles was serverseitig ausgeführt wird.

Grüße
Bruno