HTML nur für Admin erlaubt ?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok, auf Anhieb habe ich da jetzt erst mal nix gefunden, warum das so ist... Mein Tipp wäre eine Einstellung in der Datenbank... könntest du mal kontrollieren ob der user anonymous (id -1) bei user_allowhtml eine 0 stehen hat? Wenn nicht:

Code: Alles auswählen

UPDATE phpbb_users SET user_allowhtml = 0 WHERE user_id = -1
Wobei ich sagen muss dass mich das wundern würde wenn dort eine 1 stehen würde, denn schließlich haben wir ja vorher schon alle bis auf die Admins auf 0 gesetzt. Bei mir hat diese Änderung allerdings ausgereicht um den Button verschwinden zu lassen in Kombination mit allen anderen Dingen. Eigentlich sollte das reichen.
Falls das nicht reichen sollte oder von anderen Tools zurückgesetzt wird (kann durchaus passieren) dann empfehle ich die "Holzhammermethode":
Suche:

Code: Alles auswählen

//
// End session management
//
Danach kommt dazu:

Code: Alles auswählen

if($userdata['user_id'] == ANONYMOUS || !$userdata['session_logged_in'])
{
$userdata['user_allowhtml'] = FALSE;
}
Das nimmt diese Einstellung manuell vor und überschreibt damit das was in der Datenbank steht.

Oder "Vorschlaghammermethode":

Code: Alles auswählen

if($userdata['user_id'] == ANONYMOUS || !$userdata['session_logged_in'])
{
$board_config['allow_html'] = FALSE;
}
(selbe Stelle)

Das schaltet dann beim Anonymen User die Boardeinstellung auf HTML AUS. Das sollte daher nur in der posting.php eingefügt werden, denn sonst werden HTML Beiträge ja nicht richtig dargestellt. Ich denke beim Posting wäre es noch verschmerzbar wenn im Thema Überblick das ganze eben nicht ganz korrekt ist. Also das nur verwenden wenn es wirklich nicht anders geht, aber wie gesagt, bei mir hatten die Anonymen User schon nach dem Datenbankupdate kein HTMLkästchen mehr.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
AzadKing
Mitglied
Beiträge: 71
Registriert: 28.01.2007 15:11

Beitrag von AzadKing »

Hmm wenn anonymous HTML aus ist dann kann er kein HTML sehen :(
das ist schlecht :-\
AzadKing
Mitglied
Beiträge: 71
Registriert: 28.01.2007 15:11

Beitrag von AzadKing »

auch die angemeldeten user können nach dem Update kein HTML mehr sehen wenn ich allow_html auf 0 setze in der sQL config das ist noch schlecher :-(

Denn sie sollen ja alle HTML sehen können aber nur bestimmte user den button HTML-deaktivieren ausschalten können
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ja die "echte" Board Config sollte HTML aktiviert haben.

Die Holzhammermethode sollte nur in der posting.php verwendet werden. Dann können sie für den Post HTML nicht aktivieren und somit wird der Post immer encodiert betrachtet. Einziger nebeneffekt dürfte eigentlich dann sein, dass unten in der Themavorschau ebenfalls der HTML Code encodiert erscheint... Aber wie gesagt, bei mir hat es eigentlich schon ausgereicht oben die beschriebenen Änderungen durchzuführen. Hast du irgendwelche MODS drin, die die posting.php verändern?
Ich finde neue BBcodes für häufig verwendete Dinge sowieso sinnvoller als HTML Erlaubnis. Ich habe mir z.B. einen gebastelt, der zusätzlich zu einem Text 3 bis 4 Parameter nimmt welche andere Dinge steuern, das kommt dann einem HTML Code schon sehr nahe und kann ihn ersetzen. Die Benutzung der BBcodes für best. User zu sperren (oder nur gewisse Gruppen zu erlauben) ist ohne Probleme möglich (auch mit ein paar wenigen Modifikationen ähnlicher Art).
EDIT: Es wäre evtl. sinnvoll wenn du die Datei als Textdatei verlinken würdest falls das Problem noch besteht... Und ein Testlink und Account evtl. auch. Eine PHP-Datei zum Download bereitstellen
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
AzadKing
Mitglied
Beiträge: 71
Registriert: 28.01.2007 15:11

Beitrag von AzadKing »

wenn du mir für embed einen BBcode findest damit ich flashes anzeigen lassen kann dann nehme ich gern den :-P
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Stell mal einen Mustercode (HTML) zur Verfügung, am besten mit Markierungen was alles Variabel sein soll (also irgendwelche Parameter die sich ändern sollen), dann lässt sich sowas relativ einfach basteln...

Dann kann man das wie Hier beschrieben auf bestimmte Benutzergruppen oder User beschränken.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
AzadKing
Mitglied
Beiträge: 71
Registriert: 28.01.2007 15:11

Beitrag von AzadKing »

<embed src="http://www.samorost.net/samorost1/intro.swf" WIDTH="800" HEIGHT="600">

das wäre z.b ein einfache code :D
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Also gut:

Wichtig: Alle Dateien vor der Änderung sichern! Ich habe das nicht getestet und übernehme keine Garantie!

öffne bbcode.tpl (im templates/STYLE/ Verzeichnis)

Ganz am Ende einfügen:

Code: Alles auswählen

<!-- BEGIN embed --><embed src="{URL}" WIDTH="{WIDTH}" HEIGHT="{HEIGHT}"><!-- END embed -->
öffne bbcode.php (im includes Verzeichnis)

finde

Code: Alles auswählen

define("BBCODE_TPL_READY", true);
Davor einfügen:

Code: Alles auswählen

$bbcode_tpl['embed'] = str_replace('{URL}','\\3',$bbcode_tpl['embed']);
$bbcode_tpl['embed'] = str_replace('{WIDTH}','\\1',$bbcode_tpl['embed']);
$bbcode_tpl['embed'] = str_replace('{HEIGHT}','\\2',$bbcode_tpl['embed']);
finde

Code: Alles auswählen

// Patterns and replacements for URL and email tags..
	$patterns = array();
	$replacements = array();
Davor einfügen

Code: Alles auswählen

$text = preg_replace("#\[embed:$uid:w=([0-9]+) h=([0-9]+)\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/embed:$uid\]#is", $bbcode_tpl['embed'], $text);
Finde

Code: Alles auswählen

// [b] and [/b] for bolding text.
	$text = preg_replace("#\[b\](.*?)\[/b\]#si", "[b:$uid]\\1[/b:$uid]", $text);
Davor einfügen

Code: Alles auswählen

//EMBED: URL der Form aaa://xxx.de
$text = preg_replace("#\[embed:w=([0-9]+) h=([0-9]+)\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/embed\]#is", "[embed:$uid:w=\\1 h=\\2]\\3[/embed:$uid]", $text);

//EMBED: URL der Form www.xxx.de
$text = preg_replace("#\[embed:w=([0-9]+) h=([0-9]+)\]([\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/embed:$uid\]#is", "[embed:$uid:w=\\1 h=\\2]http://\\3[/embed:$uid]", $text);

//Parameter vertauscht:
//EMBED: URL der Form aaa://xxx.de
$text = preg_replace("#\[embed:h=([0-9]+) w=([0-9]+)\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/embed\]#is", "[embed:$uid:w=\\2 h=\\1]\\3[/embed:$uid]", $text);

//EMBED: URL der Form www.xxx.de
$text = preg_replace("#\[embed:h=([0-9]+) w=([0-9]+)\]([\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/embed:$uid\]#is", "[embed:$uid:w=\\2 h=\\1]http://\\3[/embed:$uid]", $text);
Diese Stelle ist die zu bearbeitende, falls der Code für gewisse Benutzer gesperrt werden soll (Als Beispiel: Nur Admin darf den Code benutzen -> Der Code muss so bearbeitet werden:

Code: Alles auswählen

global $userdata;
if($userdata['user_level'] == ADMIN)
{
... HIER DER CODE ...
}
)

Ich hatte keine Gelegenheit das zu testen, also alles vorher sichern...
Es ist vor allem möglich, dass ich mich bei den regulären Ausdrücken vertippt habe, Ausprobieren mit Rückmeldung wäre gut. Ich habe es auch nicht auf Sicherheitsaspekte hin geprüft (Im Besonderen XSS, ich meine aber, dass Anführungszeichen in der URL ausgeschlossen sind, so dass da keine Gefahr droht. Ich würde den Tag aber nur für gewisse User freigeben, denn mit embed kann man ja so ziemlich alles machen...

Nutzung:

Code: Alles auswählen

[embed:h=HOEHE w=BREITE]URL[/embed]
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
AzadKing
Mitglied
Beiträge: 71
Registriert: 28.01.2007 15:11

Beitrag von AzadKing »

sorry ich habe mich vertan bisher klappt alles richtig :D
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Freut mich zu hören. Kannst ja dann an das Thema [erledigt] dranschreiben, oder?
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“