TinyMCE work-around

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hela hola kindercola!

Op het moment dat je bij een tinyMCE veld javascript uitzet, kun je gewoon alle HTML/JS codes in het textveld plempen zonder dat ie verder nog gecontroleerd wordt.

Nu was mijn vraag, kent iemand een goede work-around(behalve die op hun wiki) die voor jou voldoet en veilig is?

Graag hoor ik jouw oplossing :-)

thanks in advance

Acties:
  • 0 Henk 'm!

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 16:51

TheDane

1.618

Ola Bola,
Server-side (sowieso) nogmaals controleren en/of filteren?

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Hela hola kindercola, Bassie de Clown zegt: http://php.net/strip_tags

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

TinyMCE is javascript gebaseerd, dus redelijk logisch dat dat niet meer werkt. Server-side bekijken is eigenlijk de enige oplossing, tenzij vbscript een beetje crossbrowser wordt geimplementeerd ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
TinyMCE heeft een eigen filter ingebouwd met toegestane html tags. Je kan dit filter serverside gebruiken om te controleren op niet-toegestane tags. Dat is misschien wat lastig.

Een andere methode lijkt me dat je op de een of andere manier kan controleren of javascript aan staat. Als dat niet zo is, dan zal TinyMCE ook niet werken. Wanneer dat het geval is, doe je bijvoorbeeld in php een strip_tags. Dan heb je gelijk alles ondervangen (hoewel dat best een rigoreuze methode is).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik strip_tags wil gebruiken, kan ik net zo goed geen tinyMCE gebruiken natuurlijk :-p

het gaat erom dat ik wil weten HOE ik kan weten wanneer ie alle tags wel en/of niet moet strippen.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
TinyMCE gebruik je dan ook alleen voor de gebruiksvriendelijkheid ervan. Het is op geen enkele manier een garantie dat de data die je server bereikt ook echt veilig is.

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 11-09 13:30
Verwijderd schreef op maandag 08 juni 2009 @ 15:33:
Als ik strip_tags wil gebruiken, kan ik net zo goed geen tinyMCE gebruiken natuurlijk :-p

het gaat erom dat ik wil weten HOE ik kan weten wanneer ie alle tags wel en/of niet moet strippen.
TinyMCE is helemaal niet gemaakt/bedoelt om HTML/JS tags te strippen. Het is een WYSIWYG editor, en daar is het ook voor gemaakt. Dat die functie er toevallig inzit is leuk, maar om alleen voor die functie een groot script als TinyMCE te gebruiken vind ik onzinnig.

Als je alleen tags wilt verwijderen moet je dus helemaal geen Javascript WYSIWYG editor gebruiken maar zoals aangegeven met bijvoorbeeld strip_tags in PHP gaan werken... Op die manier ben je server-side bezig en zit je altijd goed, zelfs als de bezoeker Javascript uitgeschakeld heeft.

[ Voor 7% gewijzigd door Saeverix op 08-06-2009 15:43 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil uiteraard normale HTML tags gewoon doorlaten.. Daarentegen wil ik javascript tags etc. allemaal tegen houden...

Nu staat op de wiki van tinyMCE een tal array's met allowed tags. Nu kan ik die alleen niet verwerken in een functie dat ie alles blocked(omdat ik niet weet hoe :-p), behalve die tags die door hun aangegeven zijn..

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op maandag 08 juni 2009 @ 16:05:
Ik wil uiteraard normale HTML tags gewoon doorlaten.. Daarentegen wil ik javascript tags etc. allemaal tegen houden...

Nu staat op de wiki van tinyMCE een tal array's met allowed tags. Nu kan ik die alleen niet verwerken in een functie dat ie alles blocked(omdat ik niet weet hoe :-p), behalve die tags die door hun aangegeven zijn..
Nou, check eens even http://php.net/strip_tags. Er is een argument $allowed_tags waarin je dat soort zaken kan meegeven ;)

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 17:22
Als ik jou was zou ik eerst eens wat meer informatie opzoeken wat betreft PHP en functie gebruik, het kan je heel veel tijd besparen ;) (Linkje: Clicky).

Maar goed, om toch nog even on-topic:
Zoals iedereen reeds zegt je moet het server-side controleren, dan kan je bijvoorbeeld ook opgeven welke tags strip_tags wel mag doorlaten. Dus je kijkt in de javascript code van TinyMCE en dan begint het al, je ziet dan verschillende tags zoals: <b><i><u> (bijvoorbeeld), je kan ook als extra argument bij strip_tags opgeven welke je wel toelaat. Dus: [PHP: strip_tags($input, "<b><i><u></u></i></b>"); om maar even een voorbeeld te noemen..

Voor meer informatie: clicky

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mithras,

Klopt als een bus.
het vervelende van die allowed_tags is, dat dit een string moet wezen. Gezien het feit dat ie behoorlijk wat tags wel moet behouden is dit nog een behoorlijke klus om dit om te zetten, en heb ik dit liever in een array.

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 17:22
Verwijderd schreef op maandag 08 juni 2009 @ 16:14:
Mithras,

Klopt als een bus.
het vervelende van die allowed_tags is, dat dit een string moet wezen. Gezien het feit dat ie behoorlijk wat tags wel moet behouden is dit nog een behoorlijke klus om dit om te zetten, en heb ik dit liever in een array.
Dan zet je het toch om in een array en dan lees je hem uit als string, what is the difference? Ik wil graag ook wel dat PHP eens makkelijker doet met mijn code of dat die zo werkt als ik dat wil maar dat gaat ook niet altijd. Sorry dat ik het zeg, maar ik vind wel dat je er wat werk voor mag doen..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sowieso manueltje22, Mijn vraag was dan ook alleen maar wat JULLIE oplossing was...

Voor hetzelfde geld kan iemand het wel doen, zonder een massive allowed_tags mee te geven...

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 11-09 13:30
Verwijderd schreef op maandag 08 juni 2009 @ 16:14:
Mithras,

Klopt als een bus.
het vervelende van die allowed_tags is, dat dit een string moet wezen. Gezien het feit dat ie behoorlijk wat tags wel moet behouden is dit nog een behoorlijke klus om dit om te zetten, en heb ik dit liever in een array.
Je wilt het in een array hebben? Je kunt het namelijk gewoon eerst in een array zetten (heb jij je zin) en vervolgens die array omzetten naar 1 lange string die je in strip_tags gebruikt. Probleem opgelost.

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op maandag 08 juni 2009 @ 16:21:
Sowieso manueltje22, Mijn vraag was dan ook alleen maar wat JULLIE oplossing was...

Voor hetzelfde geld kan iemand het wel doen, zonder een massive allowed_tags mee te geven...
je kan gewoon deze lijst pakken en die een keer door php parsen. Vervolgens sla je die string op en gebruik je verder in je applicatie :)

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16:46

Patriot

Fulltime #whatpulsert

Verwijderd schreef op maandag 08 juni 2009 @ 16:14:
Mithras,

Klopt als een bus.
het vervelende van die allowed_tags is, dat dit een string moet wezen. Gezien het feit dat ie behoorlijk wat tags wel moet behouden is dit nog een behoorlijke klus om dit om te zetten, en heb ik dit liever in een array.
Implode, anyone? Je zet het in een array en implode() zet het automagisch (en bovendien helemaal gratis!) om in een heel erg lange string :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb ik nu inderdaad gedaan..

Om te behouden dat een andere nublet hier in de toekomst mee gebashed wordt:
de tinyMCE gegeven array's imploden op de komma, en die in zn geheel in de strip_tags function pleuren.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 17:07

MueR

Admin Tweakers Discord

is niet lief

Nu nog even iets verzinnen om onmouseover, onclick en anderen te voorkomen :)

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MueR schreef op maandag 08 juni 2009 @ 16:33:
Nu nog even iets verzinnen om onmouseover, onclick en anderen te voorkomen :)
heb ik nu met
code:
1
2
3
4
$js = array('document.cookie', 'onmouseover', 'onerror', 'onclick', 'onmouseout', 'onload');
foreach($js as $j){
    $post['bericht'] = str_replace($j, '', $post['bericht']);
}


Weet niet of dit goed genoeg is? xD

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Verwijderd schreef op maandag 08 juni 2009 @ 16:43:
[...]


heb ik nu met
code:
1
2
3
4
$js = array('document.cookie', 'onmouseover', 'onerror', 'onclick', 'onmouseout', 'onload');
foreach($js as $j){
    $post['bericht'] = str_replace($j, '', $post['bericht']);
}


Weet niet of dit goed genoeg is? xD
Als je dan onclick="dosomething()" als input hebt, dan blijft er "dosomething"() over (ongeldige HTML).

Of als je ononclickclick="dosomething()" invoert, dan blijft er precies onclick="dosomething()" over.

Je zult toch een wat intelligentere replace (regular expression) moeten gaan bedenken!

Koop of verkoop je webshop: ecquisition.com

Pagina: 1