Alt 08.01.2008, 22:14:32   #1
BartTheDevil89
Devilution Media
Benutzerbild von BartTheDevil89

ID: 87739
Lose senden

BartTheDevil89 eine Nachricht über ICQ schicken
Reg: 02.05.2006
Beiträge: 3.963
Standard [PHP] String mit HTML-Text sicher machen...?

Hallo,

ich habe einen String in dem HTML-Text vorkommt(String wird von HTML-Editor erstellt). Das Problem nun daran ist, dass ich diesen String ausgeben möchte. Jetzt kann es ja aber sein, dass ein böser User beispielsweise PHP-Code in das Eingabefeld mit eingefügt hat. Würde ich jetzt einfach echo "$str"; machen würde es mir also auch den PHP-Code ausgeben.

Jetzt die Frage: Wie kann ich das richtig absichern? Wie kann ich es schaffen, dass der HTML-Code richtig ausgegeben wird, aber "böse Codes" nicht...oder ist es besser "bösen Code" direkt erstmal aus dem String rauszufiltern. (Ideen?)

Danke für eure Hilfe...
Rabatt-Gutscheine-Kostenlos.de - Rabattgutscheine für diverse Onlineshops. Immer kostenlos..

Grillmatten - Grillmatte.de zeigt dir alle Infos
BartTheDevil89 ist offline   Mit Zitat antworten
Alt 08.01.2008, 23:49:37   #2
ice-breaker
return void
Benutzerbild von ice-breaker

ID: 93995
Lose senden

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

äh, wenn du mit echo PHP-Code ausgibst, wo ist Problem? ^^
entweder du hast dich falsch ausgedrückt oder du hast große Defizite im Verständniss

Wenn du HTML-Tags filtern willst, es aber auch erlaubte gibt (sowas löst man dann eigentlich über bbcode) gibt es noch die Funktion strip_tags() welcher man als 2. Parameter eine Whitelist an Tags übergeben kann
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 09.01.2008, 10:26:19   #3
dyne
PTC-Manager

ID: 307675
Lose senden

Reg: 02.01.2008
Beiträge: 78
Standard

PHP-Code:
1:
2:
3:
$html "<html></html>";
$html str_replace("<""<"$html);
echo 
$html
Die Gefahr, dass PHP-Code ausgeführt wird, ist nicht gegeben.

PHP-Code:
1:
echo "<?die();?>";
erzeugt keinen Programmabbruch.

Trotzdem ist es sinnvoll die obige Ersetzung zu machen, weil auch HTML-Code schadhaft sein kann.
MoneySheet - jetzt mit Impressum
!! Hol Dir die Lose - komm zum Piraten !!!
Wichtig für alle, die mit mir Geschäfte machen: Ich bin am Wochenende selten Online - d.h. ab Freitag 17 Uhr fällige Zahlungen gibt's erst am Montag!
dyne ist offline   Mit Zitat antworten
Alt 09.01.2008, 15:44:42   #4
flaschenkind
Erfahrener Benutzer

ID: 118459
Lose senden

Reg: 20.04.2006
Beiträge: 4.530
Standard

Zitat:
Zitat von dyne Beitrag anzeigen
PHP-Code:
1:
2:
3:
$html "<html></html>";
$html str_replace("<""&lt;"$html);
echo 
$html
nicht gerade schön
Besser wäre htmlentities()
flaschenkind ist offline   Mit Zitat antworten
Alt 09.01.2008, 18:05:29   #5
dyne
PTC-Manager

ID: 307675
Lose senden

Reg: 02.01.2008
Beiträge: 78
Standard

Zitat:
Zitat von flaschenkind Beitrag anzeigen
nicht gerade schön
Besser wäre htmlentities()
Auf welcher Grundlage machst du diese Aussage? str_replace() ist sicher um einiges schneller als htmlentities().
Bitte erkläre den Vorteil von htmlentities()
MoneySheet - jetzt mit Impressum
!! Hol Dir die Lose - komm zum Piraten !!!
Wichtig für alle, die mit mir Geschäfte machen: Ich bin am Wochenende selten Online - d.h. ab Freitag 17 Uhr fällige Zahlungen gibt's erst am Montag!
dyne ist offline   Mit Zitat antworten
Alt 09.01.2008, 22:28:45   #6
BartTheDevil89
Devilution Media
Benutzerbild von BartTheDevil89

ID: 87739
Lose senden

BartTheDevil89 eine Nachricht über ICQ schicken
Reg: 02.05.2006
Beiträge: 3.963
Standard

Tschuldigung an alle....bin irgendwie mitm falschen Fuß aufgestanden und die Frage war komplett anders gemeint. Aber einen Dank an alle von euch...Hab das Problem selbst gelöst.
Rabatt-Gutscheine-Kostenlos.de - Rabattgutscheine für diverse Onlineshops. Immer kostenlos..

Grillmatten - Grillmatte.de zeigt dir alle Infos
BartTheDevil89 ist offline Threadstarter   Mit Zitat antworten
Alt 09.01.2008, 22:50:19   #7
ice-breaker
return void
Benutzerbild von ice-breaker

ID: 93995
Lose senden

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Zitat:
Zitat von dyne Beitrag anzeigen
Auf welcher Grundlage machst du diese Aussage? str_replace() ist sicher um einiges schneller als htmlentities().
Bitte erkläre den Vorteil von htmlentities()
mag sein, dass str_replace schneller ist, aber es ist die unsicherer Methode, denn es gibt noch mehr HTML-Sonderzeichen die escaped werden müssen.
Und wiedermal, warum das Rad neu erfinden, wenn es dafür schon eine Funktion gibt?
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Antwort

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[10 Mio Lose] Für !nur! 1 Minute Text lesen. Einfacher, kurzer Text per Micro aufnehmen! 1,5 Mio Lose sicher! Bedde15 Lose4Action 15 25.07.2008 16:16:20
Adminforce sicher machen KD-NewMedia Programmierung 10 08.05.2007 20:51:24
[HTML] Text unsichtbar machen Matthiasnet Programmierung 11 19.03.2007 23:47:42
[PHP] String zu Array machen justme69 Programmierung 1 05.10.2006 15:07:16
WLAN sicher machen anddie FAQ 0 04.05.2006 20:53:37


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49:57 Uhr.