Autor Zpráva
yelidric
Profil
Zdravím vás,

hladam, hladam a hladam ale nemôžem nič nájsť funkciu alebo funkcie, ktoré sú dobre na escapovanie ale nehladám tradicne htmlspecialchars(); ktorá mi vyescapuje vsetky html tagy. Dokonca nemam ani zaujem funkciu strip_tags(), ktorá neescapuje ale odstranuje.

Rozmýslal som nad str_replace() alebo preg_replace() ale tak neviem ci je to naj riesenie, či tam nie je aj lepsia funkcia.

P.S.: Nasiel som aj jeden clanok o sanitizaci s whitelistom, ale nejak tomu nerozumiem kde je ta fukciua ktora to vyescapuje.

Prosim budem rád za každú radu. :D nepotrebujem hotove riesenie, len nasmerovat :)
Joker
Profil
yelidric:

Fajn, tak víme, co nehledáte, ještě by bylo fajn napsat, co vlastně má dělat to, co hledáte.

str_replace a preg_replace jsou pro zpracování HTML nejspíš špatné řešení.

Možná HTML Purifier je to, co hledáte?
yelidric
Profil
no o html purifier viem, ale povedzme, že by som si chcel vytvoriť aj vlastný html purifier, tak ake funkcie by som mal pouzit? :D

Lepšie to už položiť neviem.
Joker
Profil
yelidric:
povedzme, že by som si chcel vytvoriť aj vlastný html purifier
Není zbytečné znovu vynalézat kolo?

tak ake funkcie by som mal pouzit?
Tak se podívejte do zdrojáku HTML Purifieru, jak to tam dělají.

Jestli se do něčeho takového chcete pouštět, pro začátek můžete zkusit napsat něco, co dokáže zpracovat předaný HTML kód a vytvořit obraz jeho struktury (tj. reprezentaci toho, jaké jsou v kódu tagy a jaké mezi sebou mají vazby).
yelidric
Profil
Akoze sorry, radcej budem vynalezat kolo, ako slepo pouzivat nieco co neviem co presne robi a ako to robi.

Do zdrojakov HTML Purifieru by som sa aj pozrel lenže tam je strasne vela suborov a ja zase nechcem stravit dva týždne len hrabanim sa v ich zdrojakoch... a neviem, zase tak rychlo v kode citat aby som to preluskal za par minut :D

na to tretie ale nevidim dôvod lebo ja to nepotrebujem pouzivat na xml ale len na wysiwyg editor kde si proste vyberiem tagy ktory su OK a ostatne escapujem toť vše.

a co sa tyka vynaliezania kola, tak nevidim na tom vobec nic zle, ba naopak ty ci to koleso vynaliezaju stale dookola tak su daleko lepsi vo svojej činnosti kdežto tý čo len slepo pouzivaju nieco co uz niekto vytvoril zostanu väčšinou pozadu :) tot moj nazor :)
Joker
Profil
yelidric:
Akoze sorry, radcej budem vynalezat kolo, ako slepo pouzivat nieco co neviem co presne robi a ako to robi.

Pro tohle uvažování v IT existuje dokonce i termín: NIH syndrom*.
Jinak při použití cizího objektu: Co dělá je v dokumentaci a jak to dělá pro jeho použití nepotřebujete vědět.

Ono je sice hezké si všechno naprogramovat sám, ale druhá strana mince je, že to bude trvat strašně dlouho, dokážete reprodukovat jen zlomek funkčnosti a bude v tom hromada chyb.

na to tretie ale nevidim dôvod lebo ja to nepotrebujem pouzivat na xml ale len na wysiwyg editor kde si proste vyberiem tagy ktory su OK a ostatne escapujem toť vše

Ano.
A na to vybrat tagy, které jsou OK potřebujete ten HTML parser.

co sa tyka vynaliezania kola, tak nevidim na tom vobec nic zle, ba naopak ty ci to koleso vynaliezaju stale dookola tak su daleko lepsi vo svojej činnosti

Jsou lepší ve „své činnosti“, jenže „jejich činnost“ je vynalézání primitivních věcí. A za svůj život se nedostanou ani k parnímu stroji.

Abych přešel od abstraktní analogie ke konkrétnímu, předpokládám ten vlastní HTML filtr potřebujete pro WYSIWYG editor v nějaké vlastní aplikaci. Jak dlouho si tak představujete, že tu aplikaci budete programovat? Můžete si dovolit strávit pár měsíců vyvíjením a laděním HTML filtru?

* Taky se mi líbí ze souvisejících odkazů: IKEA efekt = kognitivní zkreslení, kdy člověk přikládá věcem vyšší hodnotu jen proto, že se sám podílel na jejich výrobě.
yelidric
Profil
Nemam NIH, skor by som sam seba nazval prieskumnikom... nerobi mi problem pouzit riesenie tretej strany, ale tiež by som mal aj vediet sam ako sa da dospiet k rieseniu.

A IKEU moc nemusim, ale dobre sa tam blúdi. :D
Jan Tvrdík
Profil
yelidric:
tiež by som mal aj vediet sam ako sa da dospiet k rieseniu.
Nastuduj si obecně jak funguje lexikální analýza.
Nastuduj si jak konkrétně postavit tokenizér pro HTML5
Naprogramuj si tokenizér pro HTML5.
Naprogramuj chytrý filtr, tak který umí nad proudem tokenů provést požadovanou transformaci.
yelidric
Profil
Ok, Diky honzíku takto mi to uplne stací.

Ja som si nepotreboval spravit svoj presne rovnaky purifier, ale ked mam pouzit nejaku externu kniznicu alebo podobne tak by som rad sam vedel aspon v teoretickej rovine ako to funguje atd :D

Samozrejme niečo uplne laicke by som si vedel zbastlit, ale chcem vedet aj ako na to... snad rozumiete mojmu (pre vás asi zvlastnemu) uvazovaniu :D
Joker
Profil
yelidric:
ked mam pouzit nejaku externu kniznicu alebo podobne tak by som rad sam vedel aspon v teoretickej rovine ako to funguje

Tak však jak to obecně funguje bylo nastíněné výše a k tomu jak to funguje konkrétně viz dokumentace a veřejně dostupný zdrojový kód (což bylo taky řečeno výše).
Háček je předpokládám v tom, že to vyžaduje čas a úsilí, ale to se nedá nic dělat. Některé věci se prostě nedají udělat do hodiny a bez práce.

Snad je tu tedy popsané, jak to v principu funguje, a že přes nahrazování řetězců a regulární výrazy se to nedělá, což je tak to důležité do začátku.
yelidric
Profil
Joker:
a že přes nahrazování řetězců a regulární výrazy se to nedělá

OK, ale vlastne si nenapísal ešte pomocou čoho sa to dělá :D
Fisir
Profil
Reaguji na yelidrice:
Viz [#8].

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: