[PHP] html filteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een script, had al iets eerder gepost, toen wou ik het filteren via javascript, maar dat heb ik toch laten vallen.
Nu had ik 2 vraagjes:
Welke tags moet ik uit html halen zodat een poster geen scripts en dergelijks kan uitvoeren?
Ik dacht alle on(.+?) in elke html tags. iframes, framesets, scripts en het afsluiten van tables om zo de layout te verkloten. Verder wou ik ze een redelijke vrijheid geven. Hebben jullie misschien nog tips welke ik er uit moet halen?

Volgende vraag:
Hoe kan ik zorgen dat hij alleen on(.+?)= filtert als hij in een tag staat? Had all ge expirimentreet met <(.+?) on(.+?)=(.+?)>
Als hij dit dan tegen zou komen maakt hij een log en slaat hij dit op.

Maar dan filtert hij ook
code:
1
<p>onno=stom</p>

Reden is logisch natuurlijk maar hoe kan ik dus laten zeggen dat in de (.+?) geen > ofzo mag voor komen, dus daarmee dat hij in een tag zit

Als iemand hier antwoord heeft, ben ik daar zeer blij mee _/-\o_ .

Reden van html posten is een WYSIWYG editor

Acties:
  • 0 Henk 'm!

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 10-09 21:35

Homey — Critics are those without skills to create.


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Als je slechts selectief "HTML" toe wilt staan in je editor is het volgens mij effectiever om vooraf te specificeren wat de gebruiker wel mag toepassen (dmv een UBB parser) ipv alles wat hij niet mag achteraf weg te gaan filteren.

En met bovenstaande posts kan je dan voorkomen dat een gebruiker toch stiekem zelf "echte" HTML tags in gaat/kan voeren.

[ Voor 4% gewijzigd door Verwijderd op 23-02-2008 20:34 ]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

[google=do not use regular expressions to parse html]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
1e 2 bezoekers kan ik vast stellen dat ze mijn post totaal niet hebben gelezen (als je het had gelezen wou ik een bepaald aantal dingen toestaan) Wat slindenau zei, heb je wel gelijk in. Was ik eerst mee bezig alleen. Mijn javascript maakt gebruik van commando's en dat werd steeds ingewikkelder om meer toe te staan. En dat werd zeg maar een enorm lang script. En dat alleen voor firefox, Internet Explorer moet dan ook nog gedaan worden en zo maar door. Vooral omdat ze nu style gebruiken om aan te geven hoe iets eruit moet komen te zien werd het heel ingewikkeld.

Dan had ik bijvoorbeeld de volgende html code:
code:
1
<font style="font-weight: bold;">hallo<font size=9> Dit is groot</font>Dit is klein</font>

werd dan:
code:
1
[b]hallo[size=9]Dit is groot[/b]dit is klein[/size]

En om al die bugs op te lossen, werd het heel inefficiënt en een lange code.
Daarom leek het mij misschien handiger om gewoon geen scripts toe te laten.

Ik ga er denk ik opnieuw naar kijken en dan niet in ubb zetten maar gewoon alle toegestane codes naar [ ] vertalen en de rest van de < > veranderen naar html entities.

Acties:
  • 0 Henk 'm!

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 10-09 21:35
ALs je nou eerst alles omzet naar entities (dus ipv. te lezen zelf nadenkt :/) en dan de geparste tags omzet naar BBcode, is een stuk simpeler..

Homey — Critics are those without skills to create.


Acties:
  • 0 Henk 'm!

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 09-09 13:35

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op zaterdag 23 februari 2008 @ 22:01:
[..]
En om al die bugs op te lossen, werd het heel inefficiënt en een lange code.
Daarom leek het mij misschien handiger om gewoon geen scripts toe te laten.
Op die manier is het wellicht een betere oplossing ja, maar dan moet je wel erg goed oppassen dat je echt alles wat je niet wilt hebben ook gaat verbieden.

Daarbij denk ik persoonlijk aan meta-redirect en meer van dat soort geintjes.

Je noemt zelf trouwens ook dingen als "het afsluiten van tables" verbieden...maar dit betekend dus ook dat gebruikers zelf geen tabellen mogen invoegen?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:02

crisp

Devver

Pixelated

Kijk eens naar PEAR::HTML_Safe; die is naar mijn mening bijzonder flexibel en checked ook op wellformedness. Op dit punt zelf het wiel uit gaan vinden is vragen om problemen omdat je 99,9% zeker bepaalde gevallen over het hoofd gaat zien. Met reguliere expressies ga je dit zeker niet op kunnen lossen.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • ralphje
  • Registratie: December 2004
  • Laatst online: 25-05-2024

ralphje

Hey, it's me!

Sinds ik FCKEditor (http://www.fckeditor.net) gebruik pas ik server-side ook nog http://pixel-apes.com/safehtml/ toe. Dit is volgens mij redelijk identiek aan bovenstaande post, maar toch ;).

Geniet, maar surf met mate!


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 10:14
WeeJeWel schreef op zaterdag 23 februari 2008 @ 22:52:
ALs je nou eerst alles omzet naar entities (dus ipv. te lezen zelf nadenkt :/) en dan de geparste tags omzet naar BBcode, is een stuk simpeler..
Hoeft nog niet eens om te zetten: als je alles omzet naar entities kun je daarna heel simpel een array meegeven met tags die weer terugomgezet moeten worden naar 'echte' HTML - op deze manier weet je tenminste echt zeker dat er niemand gaat lopen klieren.

* FragFrog heeft eens iemand gehad die met eval en character codes een <img> tag wist te misbruiken, hackers zijn naar genoeg vaak inventiever dan je denkt :)

Alternatief is natuurlijk het gebruik van packages als die hierboven genoemd worden, nadeel daarvan is echter dat als er eenmaal een bug in gevonden wordt je ook sneller vatbaar ervoor bent :) Security trough obscurity is still security :+

[ Voor 15% gewijzigd door FragFrog op 24-02-2008 00:56 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heel erg bedankt! Daar zocht ik naar (zocht blijkbaar op de verkeerde woorden).Heb die van ralphje maar gebruikt. PEAR is niet op elke server teimplementeren en deze wordt ook geupdate. Hartelijk dank!
Pagina: 1