it-swarm-eu.dev

Jaké kroky by měly být podniknuty pro zabezpečení obsahu zadaného uživatelem v CMS?

Předpokládejme, že pro svou společnost stavíte neprůstřelný CMS. Náklady, čas a technologie nejsou problémem. Máte vývojáře připraveni jít se znalostmi a zkušenostmi, abyste vymohli vynikající kód.

Nyní musíte odpovědět na starou otázku CMS: Jaké kroky podniknete, abyste zajistili, že kód zadaný uživatelem do CMS je pro váš web přijatelný? Přemýšlím nad tím, že technicky uniknu z řetězce, aby mohl jít do databáze - existují úvahy o standardech w3, filtrování nevhodného obsahu, pravopisu a takových hlavolamech, jako je čištění kódu Microsoft Word. Jistě, existují obavy, které mi chyběly ...

3
bpeterson76

Myslím, že otázka je:

"Jak mohu získat přesně to, co chci od svých uživatelů tím, že jim vstup nesmyslně usnadní?"

Jedinou instancí, kde vidím uživatele, kteří skutečně potřebují používat HTML přímo v nějaké formě vstupu, je, když/pokud formátují tabulková data. V takovém případě je však mnohem snazší dát jim formu, která dokáže udělat totéž, nebo jakoukoli z populárních sítí dostupných v různých knihovnách.

Myslím, že zlatým pravidlem je, alespoň pro mě, použití systému značkování, které není HTML, které mohou vaši zpracovatelé formulářů použít k vytvoření krásného, ​​standardu vyhovujícího a sémanticky správného HTML.

Skenery třetích stran mohou (obvykle) detekovat většinu problémů s nahranými soubory. Osobně se mi líbí ClamAV - který je k dispozici pro * nix i Windows.

To řeší problém zajistit, že je vše uspořádáno pěkně, správně naformátováno a návštěvníkům nejsou podávány žádné nežádoucí věci, nebo je to tak?

Druhou věcí, kterou musíte udělat, je zkontrolovat jakýkoli obsah, který předloží, člověk musí mít na tom nějakou roli, nebo bude něco chybět. Je tento obrázek vhodný? Vede tento odkaz k malwaru nebo k něčemu jinému, na co byste raději nechtěli odkazovat? Atd.

Poskytnutí mechanismu označování pomáhá, ale není vždy účinné. Pokud například na stackoverflow.com odpovíte na dvouletou otázku, otázka se okamžitě přesune na titulní stránku, kde komunita určitě zkontroluje, co bylo právě přidáno. Ne všechny systémy jsou navrženy s ohledem na tento druh ochrany.

Pokud uděláte značné množství svazku, pokud jde o obsah příspěvků od uživatelů, pravděpodobně stojí za to prozkoumat pomocí dodavatelů, kteří jednoduše zkontrolují podání a ujistí se, že nevhodná média/odkazy jsou rychle vyřazeny. Nebo si možná můžete vyhledat pomoc od své komunity uživatelů (pokud existuje), aby udělali totéž, výměnou za nějaký druh zvláštních privilegií nebo výhod, které běžní uživatelé nemají rádi.

1
Tim Post

Odpověděl bych to tak, že se to rozdělí na více „Jaké nástroje musím implementovat“, protože pak můžete začít přemýšlet o sadě nástrojů, nástrojů a pluginů, které můžete použít k implementaci záruk.

Takové věci jako TinyMCE pro komplexní vstup, protože mají funkci „vložit z aplikace Word“, což je ideální pro odstranění mnoha problémů s charaktery aplikace Word.

Všiml jsem si, že říkáte „Kód zadaný do cms“, takže mluvíme spíše o skutečném kódu než o obsahu? Protože by to podle mého názoru trochu změnilo krajinu aplikace.

Jinak souhlasím s komentářem jessegavina, na tuto otázku může být spousta a spousta odpovědí. Musím přiznat, že tomu, co stojí, úplně nerozumím. Jako sám vývojář jsou tyto záruky věci, které bych stejně kódoval při vytváření CMS.

I když si myslím, že mnoho z ochranných opatření by mohlo být pokryto ve fázi návrhu případu použití.

0
David Yell

No, kdybych stavěl CMS (a vlastně jsem to udělal), bylo by mi jedno, jaký obsah do něj byl vložen, pokud je možné tento obsah uložit a načíst. Úkolem systému pro správu obsahu není hádat, co je přijatelné a co ne, protože se liší v závislosti na použití.

Musíte pouze zajistit, aby byl obsah moderován (tj. Projde procesem schvalování pracovního postupu). Z tohoto důvodu máte redaktory obsahu, jejichž úkolem je kontrolovat zadaný obsah a poté rozhodnout, co by mělo být zveřejněno, co by mělo být odmítnuto a co je třeba uklidit. I když je programové uspořádání obsahu WYSIWYG relativně snadné uspořádat, je na člověku, aby se skutečně rozhodl, zda je obsah vhodný k publikování.

Nikdy nedovolte uživatelům zadat obsah přímo na váš web - vždy jej zkontrolujte.

0
Dan Diplo