Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : javascript und php blocken...



h2o471
15-09-2006, 18:23
hallo alle zusammen,

ich arbeite gerade an einem forum und suche nach einer funktion, die
in den postings ausführbaren javascript und php code blockt oder bereits
vor dem speichern in die datenbank rausschneidet.

auf kundenwunsch hin kann ich aber auch nicht alle tags einfach rausnehmen,
weil standart-html tags weiterhin funktionieren sollen.

ich danke euch für eure mühen.
freundliche grüße aus heidelberg
mirko jerschabek

Pingu
15-09-2006, 18:46
ich arbeite gerade an einem forum und suche nach einer funktion, die
in den postings ausführbaren javascript und php code blockt oder bereits
vor dem speichern in die datenbank rausschneidet.RTFM: http://php.net/strip-tags

auf kundenwunsch hin kann ich aber auch nicht alle tags einfach rausnehmen,
weil standart-html tags weiterhin funktionieren sollen.Welche Art von stehen ist das? http://de.wikipedia.org/wiki/Standart

Pingu

h2o471
15-09-2006, 18:54
danke für deine schnelle antwort. :-)

strip_tags habe ich schon ausprobiert.
es entfernt aber keine javascript einträge.

den rest deines postings kann ich nicht zuordnen. :-(

bis dann

inge
16-09-2006, 08:54
du musst HTML-eigene Zeichen maskieren!



eregi_replace("<","&lt;",$text);
eregi_replace(">","&gt;",$text);


< wird nun durch &lt; ersetzt und > durch &gt;

h2o471
16-09-2006, 11:49
ahja, danke,....

jetzt steht nach dem speichervorgang in meiner DB:

hallo&lt;br /&gt;&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;&lt;a href="javascript:alert('Hallo Welt!');"&gt;Dein Link&lt;/a&gt;

vorher konnte man das javascript ausführen, jetzt nicht mehr.
wenn ich die postings anzeigen lasse wird alles schön so angezeigt
wie es eingegeben wurde. wenn ich das recht verstehe muss
ich nur noch vor der anzeige die erlaubten tags wieder umwandeln?
zb: &lt;br /&gt; --> <br />

grüße aus heidelberg
mirko

Turbohummel
17-09-2006, 06:51
Das macht HTML.Ist ja die HTML-Codierung mit dem &uuml;

Romanday
17-09-2006, 08:41
auf kundenwunsch hin kann ich aber auch nicht alle tags einfach rausnehmen,
weil standart-html tags weiterhin funktionieren sollen.

mirko jerschabek

Also wenn ich das richtig verstanden habe, HTML ist erlaubt und darf
auch in der DB gespeichert werden.
PHP + JS sollen gelöscht werden, vor der Speicherung?

cplinux
17-09-2006, 16:59
Hier mal ein paar interessante Funktionen:

http://de2.php.net/manual/de/function.get-html-translation-table.php

http://de2.php.net/manual/de/function.htmlentities.php
http://de2.php.net/manual/de/function.html-entity-decode.php

Evtl. läßt sich der JS-Code mit einer regular Expression entfernen.
z.B. <script>(.*)</script> oder ähnlich (siehe preg_replace, eregi_replace)

h2o471
18-09-2006, 08:19
danke für eure hilfe,

ich habs jetzt entsprechend dem vorschlag von INGE gemacht.

vor dem speichervorgang alle < in &lt; und > in &gt; umwandeln
und während des seitenaufrufes,... db auslesen, nur die
erlaubte tags umwandeln, zb. &lt;br /&gt; in <br /> .
so werden dann alle gewünschten tags durch den browser verwertet und
die unerwünschten einfach nur angezeigt.

funktioniert super. :-)

so kann man sich eine zentrale funktion schreiben, die die erlaubten
tags zurückwandelt und kann sie entsprechend anpassen.

gruß
mirko