Toon posts:

[PHP|Laravel] Opslaan user input artikelen

Pagina: 1
Acties:

Vraag


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
Ik ben bezig om een systeem te maken in Laravel/PHP, waarbij redacteuren artikelen kunnen schrijven.
Voor het schrijven van die artikelen, gebruik ik momenteel TinyMCE. Nu wil ik echter voorkomen dat er vuiligheid de database in komt en natuurlijk ook wanneer een gebruiker een pagina opvraagt de boel zo schoon mogelijk houden.

Ik zie echter diverse dingen;Maar ik weet daardoor nu even niet wat het handigste is. Kan ik ook een combinatie van Purifier met Tidy doen (zodat de HTML altijd valide is die eruit komt) of botsen Purifier en TIdy dan met elkaar? Of is Tidy anno 2020 eigenlijk niet meer nodig? Ik heb geen idee wat het handigste is om te doen, kunnen jullie mij een duwtje de juiste richting in geven?

* Een en dezelfde bron: https://laracasts.com/dis...ssion/cleaning-html-input

Of is het verstandiger om bijvoorbeeld een Markdown editor te gebruiken? :) Ik weet even niet wat anno 2020 the way to go is, zowel qua gemak als beveiliging. Een andere editor gebruiken dan TinyMCE vind ik ook geen probleem. :) Enige duwtjes de juiste kant op of zoektermen worden gewaardeerd!

EDIT:
https://laracasts.com/dis...ier-please-help-me-decide wijst juist weer naar Purifier (aangezien er vast ook video's gelinkt gaan worden in de artikelen waarvoor het systeem gemaakt wordt, zou dit de beste optie zijn.

[Voor 8% gewijzigd door CH4OS op 15-02-2020 17:06]

Alle reacties


  • n9iels
  • Registratie: November 2017
  • Niet online
De keuze van editor is direct afhankelijk van de redacteuren en het soort artikelen.
Iemand die het liefste artikelen in Word schrijft zal niet happy worden van Markdown. Het voordeel voor jou als beheerder is wel dat je veel controle hebt en een redacteur weinig fout kan doen. Absolute nadeel is wel dat bijv. een video invoegen een uitdaging kan worden.

Als je redactie liever iets visueels heeft lijkt mij de oplossing van die Laracast video geschikt. Nadeel (of misschien voordeel) is alleen wel dat een redacteur veel vrijheid heeft in knippen/plakken van eigen HTML.

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
Ik heb dus niet echt een idee hoe en wat qua die redacteuren, ik ga er daarom eigenlijk vanuit dat ze niet bekend zijn met Markdown en ik het hen ook zo makkelijk mogelijk wil maken. En aangezien ik er vanuit ga dat er ook (YouTube) video's in komen te staan denk ik (at second thought) dat Markdown niet heel handig / gebruiksvriendelijk is voor hen.

Ik wil het allemaal uiteraard wel performant en secure hebben. :)

Ik heb zojuist ook de Purifier comparison doorgenomen en wellicht een beetje 'wij van WC eend' geeft het an sich ook wel wat inzichten; http://htmlpurifier.org/comparison.

[Voor 23% gewijzigd door CH4OS op 15-02-2020 17:38]


  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Ik gebruik een wysiwyg in XML modus. Dan is het altijd valide.

Mensen klagen wel als ze in Word knippen en dan plakken in de editor. En maar goed ook, want Word is gewoon 0% geschikt voor HTML werk en dan leg ik ze dat uit.
Wordt namelijk tierelier van de zooi die MS Word uitpoept (diarree is zelfs nog nog beter).

Maak je niet druk, dat doet de compressor maar


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
DJMaze schreef op zaterdag 15 februari 2020 @ 19:21:
Ik gebruik een wysiwyg in XML modus. Dan is het altijd valide.
Maar hoe doe je dan de sanitizing? Dat is mijn vraag meer. :)

[Voor 35% gewijzigd door CH4OS op 15-02-2020 19:53]


  • DJMaze
  • Registratie: Juni 2002
  • Niet online
CH4OS schreef op zaterdag 15 februari 2020 @ 19:51:
Maar hoe doe je dan de sanitizing? Dat is mijn vraag meer. :)
Alles slopen, het is niet te sanitizen.
Heb alles geprobeerd.
Zelfs het speciale TinyMCE "paste from Word" venster werkt niet goed.

Mijn oplossing is een parser in de wysiwyg die alle <style>, attributen, <font>, etc. etc. er uit sloopt zodat niks over blijft en men opnieuw alles moet opmaken via wysiwyg.

Maak je niet druk, dat doet de compressor maar


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
DJMaze schreef op zaterdag 15 februari 2020 @ 21:40:
Alles slopen, het is niet te sanitizen.
Heb alles geprobeerd.
Zelfs het speciale TinyMCE "paste from Word" venster werkt niet goed.

Mijn oplossing is een parser in de wysiwyg die alle <style>, attributen, <font>, etc. etc. er uit sloopt zodat niks over blijft en men opnieuw alles moet opmaken via wysiwyg.
Ah, oke. Dan denk ik dat we even langs elkaar heen aan het kletsen zijn, of ik begrijp jouw berichten niet goed in de context op mijn vraag.

Ik heb geen Word naar HTML conversie te doen, ik zoek gewoon een goede manier om het sanitized op te slaan en het uiteindelijk al dan niet escaped weer te gaan geven.

[Voor 13% gewijzigd door CH4OS op 15-02-2020 23:12]


  • PatrickH89
  • Registratie: November 2009
  • Nu online
Rule of thumb is dat je data moet sanitizen op het moment dat het 'gevaar' ontstaat. SQL injection prevention (tegenwoordig altijd prepared statements natuurlijk, maar niet relevant voor mijn voorbeeld) doe je voordat je het in de database stopt en output sanitizen doe je voordat je het output.
Ik zou overigens niet graag een WYSIWYG (html) editor gebruiken waar je een vergelijkbare tool icm markdown kunt gebruiken. HTML purifier zou in principe gewoon prima moeten werken, maar door middel van markdown kun je zonder problemen een subset toestaan waardoor je niet meer met die HTML rommel zit.

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
PatrickH89 schreef op zondag 16 februari 2020 @ 13:22:
Rule of thumb is dat je data moet sanitizen op het moment dat het 'gevaar' ontstaat. SQL injection prevention (tegenwoordig altijd prepared statements natuurlijk, maar niet relevant voor mijn voorbeeld) doe je voordat je het in de database stopt en output sanitizen doe je voordat je het output.
Ik zou overigens niet graag een WYSIWYG (html) editor gebruiken waar je een vergelijkbare tool icm markdown kunt gebruiken. HTML purifier zou in principe gewoon prima moeten werken, maar door middel van markdown kun je zonder problemen een subset toestaan waardoor je niet meer met die HTML rommel zit.
Ah, bedankt! Maar ik denk dat degenen die ermee gaan werken niet bekend zijn met markdown. Ook heeft het geen support voor video, dus zou dan misschien iets van BBcode moeten doen. Het sanitizen doe ik omdat ik de input van die gebruikers niet wil vertrouwen en het systeem dus zelf moet zorgen dat het OK(ish) is. ;)

  • bonzen
  • Registratie: Oktober 2003
  • Laatst online: 11-11 12:55
Er zijn wysiwyg editors voor markdown.
Deze bijvoorbeeld:
https://github.com/erusev/parsedown

BTO


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Topicstarter
bonzen schreef op zondag 16 februari 2020 @ 17:49:
Er zijn wysiwyg editors voor markdown.
Deze bijvoorbeeld:
https://github.com/erusev/parsedown
Dat weet ik, maar dat is niet wat ik zoek;
Markdown heeft officieel geen video support (en dat heb ik wel nodig) en ik denk niet dat de redacteuren er goed mee overweg kunnen, dus is het niet echt een optie.

Ik zou dus eventueel BBcode kunnen gaan gebruiken, of de boel filteren met Purifier (ik zit vooral naar het laatste te kijken).

EDIT:
Al denk ik dat het wellicht handiger is om sowieso Purifier er overheen te laten gaan, zodat ik zeker weet dat de HTML die eruit komt clean is. Dan maakt het in wezen ook niet meer uit of ik BBcode, Markdown, XML of gewoon HTML gebruik.

[Voor 31% gewijzigd door CH4OS op 16-02-2020 23:07]

Pagina: 1



Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers is samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer onderdeel van DPG Media B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee