Seite 1 von 1

Wortzensur umgehen

Verfasst: 02.07.2006 20:06
von silva07
Bekanntlich kann man ja die Wortzensur folgend umgehen:

Code: Alles auswählen

Zen[b][/b]siert
Gibt es eine Möglichkeit das zu verhindern?

Verfasst: 04.07.2006 00:04
von silva07
*schieb*

Verfasst: 24.05.2007 01:08
von n!ck
*schieb*

Würde mich auch interessieren. Ist echt mega lässtig das man sogar mit - und anderen Sonderzeichen die Wortzensur umgehen kann.

Gibts dann nen MOD dafür oder ne Möglichkeit die Wortzensur zu verbessern?

Wäre sehr dankbar :)

Verfasst: 24.05.2007 20:39
von gn#36
Das Problem dabei ist die Filterung. Es ist leider nicht möglich sämtliche Variationen abzufangen die man sich ausdenken kann um ein Wort auszudrücken. Soll zum Beispiel "Eis" herausgefiltert werden (warum auch immer) dann wird die Software "Ais" nicht erkennen, genausowenig "3is" oder "E!s" oder "Eiß". Es ist durchaus vorstellbar dass man probiert, BBcode Tricks herauszufiltern auch hiermit wird man aber nicht alle Problemfälle abdecken können. Eine denkbar einfache Möglichkeit, zumindest das von dir gepostete

Code: Alles auswählen

[b][/b]
Problem zu lösen wäre, diese (ja ganz offensichtlich sinnlosen) Tags von vorneherein herauszufiltern. Das könnte man zum Beispiel so realisieren:
Öffne includes/bbcode.php und finde

Code: Alles auswählen

	function bbencode_first_pass($text, $uid)
{
	
	// pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0).
	// This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it.
	$text = " " . $text;
Danach einfügen:

Code: Alles auswählen

$text = str_replace('[b][/b]','',$text);
$text = str_replace('[i][/i]','',$text);
$text = str_replace('[u][/u]','',$text);
$text = str_replace('[B][/B]','',$text);
$text = str_replace('[I][/I]','',$text);
$text = str_replace('[U][/U]','',$text);
$text = preg_replace('#\[img\]\[/img\]#is','',$text);
$text = preg_replace('#\[url\]\[/url\]#is','',$text);
$text = preg_replace('#\[color(=\#?[A-Z0-9]+)?\]\[/color\]#is','',$text);
$text = preg_replace('#\[size(=[0-9]+)?\]\[/size\]#is','',$text);
Danach sollten beim Posten von Text alle derartigen Kombinationen entfernt werden. Das wirkt sich natürlich nur auf neue Posts aus, alte werden unverändert dargestellt. Bitte vor der Änderung aber alle Dateien und die Datenbank sichern, ich habe den Code nicht getestet.

Verfasst: 24.05.2007 22:05
von silva07
Ich werds morgen gleich testen, vielen Dank :)