BB-code beveiligen...

Discussieer hier over alles rondom phpBB.
Forumregels
LEES: Algemene Voorwaarden. Dit forum is niet voor technische vragen!
Plaats reactie
Wouser
Berichten: 38
Lid geworden op: 01 jul 2007, 20:01

BB-code beveiligen...

Bericht door Wouser » 02 aug 2007, 20:17

- edit - bericht aan admin... even kickje naar viewforum.php?f=53 forum :P

Hallo,

Ik heb nu een aantal BB-codes...

Code: Selecteer alles

BB-Code Verwijzing naam
{TEXT1} = LINK TEKST
{TEXT2} = NAAM VERWIJZING
[anker={TEXT2}]{TEXT1}[/anker]
HTML:
<a name="{TEXT2}" style="text-decoration:none;">{TEXT1}</a>

BB-Code Verwijzing plaats
{TEXT1} = TEKST
{TEXT2} = NAAM VERWIJZING
[ankerurl={TEXT1}]{TEXT2}[/ankerurl]
HTML:
<a href="#{TEXT1}">{TEXT2}</a>

BB-Code Offtopic
{TEXT1} = OFFTOPIC TEKST
[offtopic]{TEXT1}[/offtopic]
HTML:
<span style="font:11px italic bold; color:#114499;">Offtopic:</span> <span style="font-size:10px; color:#4E4E4E;">{TEXT1}</span>

BB-Code Sub / Sup
{TEXT1} = TEKST
[sub]{TEXT1}[/sub]
HTML:
<sub>{TEXT1}</sub>
[sup]{TEXT1}[/sup]
HTML:
<sup>{TEXT1}</sup>

BB-Code horizontale lijn
[hr][/hr]
HTML:
<hr style="margin-top:-10px;" />

BB-Code enter
[br][/br]
HTML:
<br />


BB-Code HTML commentaar
{TEXT1} = commentaar
[note]{TEXT1}[/note]
HTML:
<!-- {TEXT1} -->

BB-Code uitlijnen
{TEXT1} = TEKST
{TEXT2} = left | right | center | justify
[align={TEXT1}]{TEXT2}[/align]
HTML:
<span style="text-align:{TEXT1};">{TEXT2}</span>

BB-Code doorstreept
{TEXT1} = TEKST
[s]{TEXT1}[/s]
HTML:
<span style="text-decoration: line-through;">{TEXT1}</span>

BB-Code TABLE tag
{TEXT1} = TEKST
{TEXT2} = CELLPADDING
{TEXT3} = CELLSPACING
{TEXT4} = STYLE
[table={TEXT2},{TEXT3},{TEXT4}]{TEXT1}[/table]
HTML:
<table cellspacing="{TEXT2}" cellpadding="{TEXT3}" style="{TEXT4}">{TEXT1}</table>

BB-Code TR tag
{TEXT1} = TEKST
{TEXT2} = STYLE
[tr={TEXT2}]{TEXT1}[/tr]
HTML:
<tr style="{TEXT2}">{TEXT1}</tr>

BB-Code TD tag
{TEXT1} = TEKST
{TEXT2} = ROWSPAN
{TEXT3} = COLSPAN
{TEXT4} = STYLE
[td={TEXT2},{TEXT3},{TEXT4}]{TEXT1}[/td]
HTML:
<td rowspan="{TEXT2}" colspan="{TEXT3}" style="{TEXT4}">{TEXT1}</td>

BB-Code voor zoeken via forum
{TEXT1} - zoekwoord
[search]{TEXT1}[/search]
HTML:
<a class="icon-search" href="search.php?keywords={TEXT}">&nbsp;{TEXT}</a> 

BB-Code voor zoeken via google
{TEXT1} = zoekwoord(en)
[google]{TEXT1}[/google]
HTML:
<span style="font: 17px bold;"><span style="color: #0000FF">G</span><span style="color: #FF0000;">o</span><span style="color:#FFFF40;">o</span><span style="color: #0000FF;">g</span><span style="color: #008000;">l</span><span style="color: #FF0000;">e</span>:</span> <a href="http://www.google.com/search?q={TEXT1}">{TEXT1}</a>

BB-Code voor youtube filmpjes
{TEXT1} = code van youtube filmpje
[youtube]http://www.youtube.com/watch?v={TEXT1}[/youtube]
HTML:
<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/{TEXT1}"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/{TEXT1}" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>

BB-Code voor spoiler
{TEXT1} = Tekst die verborgen moet worden
[spoiler]{TEXT1}[/spoiler]
HTML:
<div style="margin:20px; margin-top:5px"><div style="font: 11px Verdana, Geneva, Lucida, 'Lucida Grande'; margin-bottom:2px"><b>Spoiler:</b> <input type="button" value="Show" style="width:45px;font-size:10px;margin:0px;padding:0px;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';      this.innerText = ''; this.value = 'Hide'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Show'; }" /></div><div style="min-height: 20px; background-color: #EDE8E0; margin: 0px; padding: 6px; border: 1px inset;"><div style="display: none;">{TEXT1}</div></div></div>

BB-Code voor tekstvak
{TEXT1} = Titel tekstvak
{TEXT2} = Inhoud tekstvak
[area={TEXT1}]{TEXT2}[/area]
HTML:
<fieldset style="border-left:#CCCCCC dotted; border-bottom:#CCCCCC dotted; border-right:none; border-top:none; border-width:thin; padding-left: 10px; padding-right: 10px; padding-top: 5px; padding-bottom: 5px; font-size: 12px;"><legend style="margin-left:10px; margin-right:10px; padding-left:5px; padding-right:5px; font-size:11px; font-weight:bold;">{TEXT1}</legend>{TEXT2}</fieldset>

BB-Code voor klapmenu
{TEXT1} = naam variable klapmenu
[collaps]{TEXT1}[/collaps]
HTML:
<script language="javascript" type="text/javascript"> function {TEXT1}() { var {TEXT1}_var = document.getElementById('{TEXT1}'); if({TEXT1}_var.style.display=="none") { {TEXT1}_var.style.display="block"; } else { {TEXT1}_var.style.display="none"; } } </script>

BB-Code voor link klapmenu
{TEXT1} = TEKST
{TEXT2} = STYLE
{TEXT3} = naam van variable klapmenu
[thead={TEXT2},{TEXT3}]{TEXT1}[/thead]
HTML:
<thead style="cursor: pointer;{TEXT2}" onclick="{TEXT3}()">{TEXT1}</thead>

BB-Code voor open te klappen menu
{TEXT1} = TEKST
{TEXT2} = STYLE
{TEXT3} = naam van variable klapmenu
[tbody={TEXT2},{TEXT3}]{TEXT1}[/tbody]
HTML:
<tbody style="{TEXT2}" id="{TEXT3}">{TEXT1}</tbody>
Nu wil ik een aantal van deze codes beveiligen tegen 'normale' gebruikers. Zodat alleen admins die BB-codes dus kunnen gebruiken bijvoorbeeld [collaps] omdat hier namelijk javascript gebruikt wordt en nogal dat is ook nogal gevoelig. Kan iemand een voorbeeld geven hoe ik die [collaps] functie zou kunnen beveiligen tegen normale gebruikers en niet tegen admins? Welke php file moet ik dan gaan editen?

Gebruikersavatar
Derky
Berichten: 4466
Lid geworden op: 07 apr 2005, 16:24
Locatie: Nederland
Contacteer:

Re: BB-code beveiligen...

Bericht door Derky » 06 aug 2007, 10:41

Kijk eens wat Stef heeft gemaakt. :geek:

Wouser
Berichten: 38
Lid geworden op: 01 jul 2007, 20:01

Re: BB-code beveiligen...

Bericht door Wouser » 07 aug 2007, 22:37

Harstikke tof :D

werkt perfect. Als iemand intresse heeft in me BB codes + simple mod beveiliging hoef je enkel 't volgende te doen...

BB codes in 1ste post toevoegen... m.b.v. phpbb3 zelf...

vervolgens posting.php openen staat in index map van phpbb3...
vervolgens zoek de volgende regels op:

Code: Selecteer alles

<?php
	$post_data['enable_bbcode']		= (!$bbcode_status || isset($_POST['disable_bbcode'])) ? false : true;
	$post_data['enable_smilies']	= (!$smilies_status || isset($_POST['disable_smilies'])) ? false : true;
	$post_data['enable_urls']		= (isset($_POST['disable_magic_url'])) ? 0 : 1;
	$post_data['enable_sig']		= (!$config['allow_sig']) ? false : ((isset($_POST['attach_sig']) && $user->data['is_registered']) ? true : false);
?>
en vervolgens plaats je de volgende regels bij...
Wanneer je even naar de code kijkt zie je dat het simpel is om de beveiliging op andere bb codes toe te passen...

Code: Selecteer alles

<?php
	// Edit by: 
	// Date: 	7 August 2007
	// Note: 
                // Deze code beveiligt de [note], [table], [tr], [td], [thead], [tbody], [area], [collaps], [mod] tags
	// Je kunt zelf de rechten nog veranderen door bijvoorbeeld door "m_" te
	// vervangen met "m_edit".  (Enkel moderators die berichten mogen wijzigen.)
    if ($auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
    {
        $message_parser->message = preg_replace("/\[note\](.*?)\[\/note\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[table=(.*?)\](.*?)\[\/table\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[tr=(.*?)\](.*?)\[\/tr\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[td=(.*?)\](.*?)\[\/td\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[area=(.*?)\](.*?)\[\/area\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[collaps\](.*?)\[\/collaps\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[thead=(.*?)\](.*?)\[\/thead\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[tbody=(.*?)\](.*?)\[\/mod\]/s", "", $message_parser->message);
		$message_parser->message = preg_replace("/\[mod=(.*?)\](.*?)\[\/mod\]/s", "", $message_parser->message);
    } 
?>

Plaats reactie