[PHP]Profielen; invoer beperken (Geen PHP/Javascript)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
Ik ben met een medestudent op het moment bezig met een profielensysteem voor een schoolproject. Allemaal geen probleem....behalve één ding.

We willen de gebruiker beperken in zijn invoer. Het moet namelijk niet mogelijk zijn om PHP scripts of Javascripts o.i.d. te laden in het invoerveld. Standaard HTML tags (<b> <i> <u> <marquee> bijv.) wel...

Ik ben al bezig geweest met HTML specialchars en wat replace functies maar dat geeft toch niet echt het gewenste resultaat.

Wat is volgens jullie de beste manier om de gebruiker bepaalde beperkingen op te leggen? Toch via regexp <?php tags (En alles ertussen) e.d. ertussenuit slopen! Of alle tags disablen via specialchars...of een andere manier?

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Kijk eens naar UBB. Dan gebruik je zo ongeveer dezelfde codes als op GoT [b][i][s][u] Zodoende hou jij de controle en niet de poster. Je wil namelijk niet weten wat je allemaal kan doen met JS. :)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

wat je kan doen is helemaal geen html toelaten (strip_tags) en een bbparser bakken.. Wil je echt de "normale" htmltags gebruiken dan toch met regexpen, dingen zoals <script> filteren, maar dat is volgens mij vrijwel niet te doen (varianten)..

edit:
Iets te laat, maar toch

[ Voor 26% gewijzigd door Verwijderd op 30-11-2004 22:53 ]


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
ripexx schreef op dinsdag 30 november 2004 @ 22:51:
Kijk eens naar UBB. Dan gebruik je zo ongeveer dezelfde codes als op GoT [b][i][s][u] Zodoende hou jij de controle en niet de poster. Je wil namelijk niet weten wat je allemaal kan doen met JS. :)
Ja precies...alleen alert boxen sucken al.

Maar je moet dus alle code strippen? Maar dat doe ik dan met specialchars? Striptags dus..

[ Voor 13% gewijzigd door Ebayzo op 30-11-2004 22:53 ]

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Volg ook maar eens deze link: http://gathering.tweakers...D=&select_forum=#hitstart
EbAyzo schreef op dinsdag 30 november 2004 @ 22:52:
[...]
Ja precies...alleen alert boxen sucken al.
Dat is nog de minste zorg ;)
Maar je moet dus alle code strippen? Maar dat doe ik dan met specialchars? Striptags dus..
Wat dacht je van de PHP functie htmlspecialchars() :)

[ Voor 42% gewijzigd door ripexx op 30-11-2004 22:55 ]

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

met strip_tags zoals ik al zei en ook met htmlentities, kijk ff in de PHP manual zou ik zeggen..

Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
K tnx voor de tips! Ik ga weer even verder kijken...

Default blanke hetero


Acties:
  • 0 Henk 'm!

Verwijderd

heb ik ooit gedaan, stom voorbeeld wat ik nu geef, maar het werkte wel : ). Ik zette alle toegestane tags om naar UBB, daarna htmlspecialchars() en vervolgens weer terug. Dit werkte gewoon makkelijk en snel, hoefde bijna niks zelf te schrijven.

Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
toevoeging @Abdul: dat kan gewoon met str_replace en niet met onhandige regexen :)

[ Voor 8% gewijzigd door flashin op 30-11-2004 23:16 ]


Acties:
  • 0 Henk 'm!

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 26-04-2024
flashin schreef op dinsdag 30 november 2004 @ 23:16:
toevoeging @Abdul: dat kan gewoon met str_replace en niet met onhandige regexen :)
Wat is er onhandig aan regular expressions? :o Voor tags als [b] en [i] kun je het makkelijker met str_replace doen, maar ingewikkeldere tags gaan véél makkelijker met regexps.

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

ludo schreef op dinsdag 30 november 2004 @ 23:21:
[...]
Wat is er onhandig aan regular expressions? :o Voor tags als [b] en [i] kun je het makkelijker met str_replace doen, maar ingewikkeldere tags gaan véél makkelijker met regexps.
Het gaat juist niet om de tags [b] en [i] maar om het stripen van de HTML. Verbiedt HTML en filter dit er uit en ga niet aan de slag met het valideren van HTML te veel moeite en er zijn zat kant en klare scripts voor het parsen van (U)BB codes te vinden. Waarom het wiel nogmaals uitvinden?

Verder wil je zaken zoals <a href="javascript:doiets_leuks()">Leuke Link</a> gewoon voorkomen. Als je dat allemaal moet gaan parsen en controleren ben je veel en veel te lang bezig. En met een beetje simpele opmaak codes kom je al een eind. Verder zijn er zat JS scripts te vinden die een vergelijkbare editor als die van de nieuwe GoT template kunnen aanbieden.

Kijk als je het leuk vindt om dit soort zaken uit te zoeken dan moet je vooral niet laten, maar gezien je vraag denk ik nog niet dat je daar aan toe bent. ;)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Regular expressions zijn voor 90% van alle BB-code prima afdoende en snel, mits je een goeie expressie schrijft. Je moet uiteraard wel weten wat je aan het doen bent. En zomaar vertrouwen op andermans scripts zoals jij nu voorstelt, is niet echt iets wat je moet doen. Als je zelf je zooi schrijft, dan weet je waar de sterke en zwakke punten zitten.

Verder is str_replace ook voor tags als [b] en [i] not done. Waarom? Omdat, als je een sluittag vergeet, je hele HTML code fucked up raakt. In een regexp kun je ervoor kiezen om de zooi alleen te vervangen als er daadwerkelijk een sluittag voor is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

-NMe- schreef op dinsdag 30 november 2004 @ 23:49:
Regular expressions zijn voor 90% van alle BB-code prima afdoende en snel, mits je een goeie expressie schrijft. Je moet uiteraard wel weten wat je aan het doen bent. En zomaar vertrouwen op andermans scripts zoals jij nu voorstelt, is niet echt iets wat je moet doen. Als je zelf je zooi schrijft, dan weet je waar de sterke en zwakke punten zitten.
Waarom kan je niet vertrouwen op andere scripts? Er zijn zat goede scripts te krijgen. regexen schrijven is niet iets wat je zomaar kan en dan wordt het juist gevaarlijk. Tja je kan ook een stack based parser bouwen ipv een regex parser. Het is maar waar je zin in hebt maar waarom moeilijk doen? Verder is het maar de vraag of je eigen code wel beter of veiliger is.
Verder is str_replace ook voor tags als [b] en [i] not done. Waarom? Omdat, als je een sluittag vergeet, je hele HTML code fucked up raakt. In een regexp kun je ervoor kiezen om de zooi alleen te vervangen als er daadwerkelijk een sluittag voor is.
Klopt als een bus ;)

Maar voor de TS. Niet HTML gaan parsen en kijken of het wel mag maar gewoon niet toestaan en een andere methode aanbieden. :)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Klopt ook wel wat je zegt, maar niveau is geen excuus, alles is te leren. ;)

Wat trouwens het makkelijkste is, is dit: htmlspecialchars over een bericht heen halen, en dan eenvoudige dingen weer terug replacen door &lt;b&gt; te vervangen door <b> enz. Uiteraard werkt dat alleen maar fijn bij simpele tags zonder attributen, maar het is eenvoudig te implementeren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
-NMe- schreef op woensdag 01 december 2004 @ 00:03:
Klopt ook wel wat je zegt, maar niveau is geen excuus, alles is te leren. ;)

Wat trouwens het makkelijkste is, is dit: htmlspecialchars over een bericht heen halen, en dan eenvoudige dingen weer terug replacen door &lt;b&gt; te vervangen door <b> enz. Uiteraard werkt dat alleen maar fijn bij simpele tags zonder attributen, maar het is eenvoudig te implementeren.
Maar eigenlijk mogen alleen opmaak tags. Evt wat andere dingetjes maar dat kun je dan via de BB-code manier doen. Maar ik heb inderdaad weinig kennis van regexp en heb op het moment ook geen tijd om me erin te verdiepen. Daarom zou een UBB parser implaneteren geen gek id zijn. Dat in combinatie met htmlspecialchars zou de invoer toch voldoende moeten beperken lijkt mij....Ik heb al eens met de parser van ACM (toch?) gespeeld. Mischien dat ik daar de mogelijkheden weer even van ga bekijken.

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-09 09:34

thomaske

» » » » » »

de strip_tags() functie heeft als tweede parameter 'allowable_tags'

dus:
PHP:
1
strip_tags($text, '<b><i><s>');

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
Ja die had ik al gevonden inderdaad. Op zich geeft dat ook wel voldoende mogelijkheden.

offtopic:
Pfff...wennen die nieuwe layout :X

[ Voor 28% gewijzigd door Ebayzo op 01-12-2004 10:47 ]

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Let wel dat strip_tags() uit zichzelf attributen laat staan:
HTML:
1
<b onload="alert('XSS error!');">

Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
Skaah schreef op woensdag 01 december 2004 @ 11:30:
Let wel dat strip_tags() uit zichzelf attributen laat staan:
HTML:
1
<b onload="alert('XSS error!');">
Dat is inderdaad lastig....

Maar ik moet maar eens goed alle mogelijkheden gaan bekijken...

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-09 09:34

thomaske

» » » » » »

EbAyzo schreef op woensdag 01 december 2004 @ 12:04:
[...]
Dat is inderdaad lastig....

Maar ik moet maar eens goed alle mogelijkheden gaan bekijken...
In de user-comments van de striptags functie op php.net staat daar ook een oplossing voor..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
thomaske schreef op woensdag 01 december 2004 @ 12:08:
[...]


In de user-comments van de striptags functie op php.net staat daar ook een oplossing voor..
Bedankt voor de tips. Ga er vanvond gelijk even naar kijken..

Default blanke hetero


Acties:
  • 0 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022
--Beter nieuw topic--

[ Voor 95% gewijzigd door Ebayzo op 15-12-2004 15:46 ]

Default blanke hetero

Pagina: 1