Liep hier ook tegenaan, voorbeeld link: pricewatch: Nikon D3200 Zwart
@MadMarky Bedankt voor 't melden! Ik heb een fix klaarstaan, die wordt nu gedeployed en komt zo online.
Achtergrond van de bug:
We maken gebruik van Twig voor onze templates. Het mooie van Twig tov PHP is dat Twig zaken standaard "escaped" afhankelijk van de context. Zo voorkom je dat als je iets toont waar HTML-achtige tekens instaan, dat deze als HTML worden geïnterpreteerd, en dus je pagina stukmaken.
Dit escapen doet Twig slim: Als er tekst staat die al geëscaped is, dan doet hij dat niet nogmaals. Daarmee voorkom je normaalgesproken dit soort situaties waarin HTML tweemaal is geëscaped.
Binnen Twig kun je text ook door verschillende filters halen, en elk filter kan dan aangeven of de tekst 'veilig' is of niet. Als een tekst 'veilig' is, zal Twig het niet nogmaals escapen.
De categorienaam die hier getoond word, staat in de database opgeslagen en begint met een hoofdletter (dus "Compactcamera's"). Deze categorienaam wordt geëscaped doorgegeven aan Twig, en is dus "veilig".
Nu dan de bug: We willen hier een text tonen ala "Alle + <categorie>". Als je dat doet, zou het resultaat worden "Alle Categorienaam", met de categorie beginnend met een hoofdletter. Dat is slordig, dus passen we een filter toe dat de eerste letter naar onderkast zet, zodat er "Alle categorienaam" staat. Het probleem met toepassen van een filter, is dat hij de "veilig" markering verliest die eerder was aangegeven. De categorienaam die dus "veilig" was, wordt door het toepassen van dit filter weer "onveilig", waardoor Twig escaping toepast op een tekst die al geëscaped was.
Normaal pas je escaping pas op 't allerlaatste moment toe om dit soort problemen te voorkomen, alleen is het op deze positie niet mogelijk om de onderkast-filter eerder toe te passen. Ik heb 't nu zo aangepast dat hij na het toepassen van 't onderkast filter, de text weer als 'veilig' markeert waardoor 't probleem opgelost is.
NB: Na het typen van dit verhaal is de pipeline al geslaagd, de fix staat dus live
Achtergrond van de bug:
We maken gebruik van Twig voor onze templates. Het mooie van Twig tov PHP is dat Twig zaken standaard "escaped" afhankelijk van de context. Zo voorkom je dat als je iets toont waar HTML-achtige tekens instaan, dat deze als HTML worden geïnterpreteerd, en dus je pagina stukmaken.
Dit escapen doet Twig slim: Als er tekst staat die al geëscaped is, dan doet hij dat niet nogmaals. Daarmee voorkom je normaalgesproken dit soort situaties waarin HTML tweemaal is geëscaped.
Binnen Twig kun je text ook door verschillende filters halen, en elk filter kan dan aangeven of de tekst 'veilig' is of niet. Als een tekst 'veilig' is, zal Twig het niet nogmaals escapen.
De categorienaam die hier getoond word, staat in de database opgeslagen en begint met een hoofdletter (dus "Compactcamera's"). Deze categorienaam wordt geëscaped doorgegeven aan Twig, en is dus "veilig".
Nu dan de bug: We willen hier een text tonen ala "Alle + <categorie>". Als je dat doet, zou het resultaat worden "Alle Categorienaam", met de categorie beginnend met een hoofdletter. Dat is slordig, dus passen we een filter toe dat de eerste letter naar onderkast zet, zodat er "Alle categorienaam" staat. Het probleem met toepassen van een filter, is dat hij de "veilig" markering verliest die eerder was aangegeven. De categorienaam die dus "veilig" was, wordt door het toepassen van dit filter weer "onveilig", waardoor Twig escaping toepast op een tekst die al geëscaped was.
Normaal pas je escaping pas op 't allerlaatste moment toe om dit soort problemen te voorkomen, alleen is het op deze positie niet mogelijk om de onderkast-filter eerder toe te passen. Ik heb 't nu zo aangepast dat hij na het toepassen van 't onderkast filter, de text weer als 'veilig' markeert waardoor 't probleem opgelost is.
NB: Na het typen van dit verhaal is de pipeline al geslaagd, de fix staat dus live
Einstein: Mijn vrouw begrijpt me niet
deze specifieke string wordt idd alleen op smallere schermen getoond. De categorienaam wordt wel op desktop getoond, maar dan aan 't begin van de zin waardoor die wel met een hoofdletter mag beginnen en dus niet dat filter wordt gebruiktMadMarky schreef op dinsdag 15 juni 2021 @ 09:40:
@DaFeliX heldere uitleg
Wat me wel opviel is dat ik het enkel in de mobiele browser zag, dus ik neem aan dat Twig niet voor de desktop site wordt gebruikt of daar weer aparte settings heeft?
Einstein: Mijn vrouw begrijpt me niet