Jeg er lidt i tvivl om hvor konsekvent man skal gøre det her, så lad mig spørge sådan her: Er der nogen situationer/typer output, hvor man ikke behøver/skal escape'e? Og er det virkelig nok, bare at bruge htmlentities() eller htmlspecialchars()?
Jeg er lidt i tvivl om hvor konsekvent man skal gøre det her, så lad mig spørge sådan her: Er der nogen situationer/typer output, hvor man ikke behøver/skal escape'e? Og er det virkelig nok, bare at bruge htmlentities() eller htmlspecialchars()?
02-02-2008
Tjaeh, hvis det skal vises som det er skrevet (html/js/css vises) så skal det ikke escapes..
Så du kan sige, at hvis teksten skal kunne gøre alt, så skal det ikke.. Ellers så skal det, for at ikke man kan injecte slemme slemme ting..
01-03-2008
Kommer vel også an på hvem der har skrevet teksten der skal/skal ikke escapes.
Er det via en submit side til brugere, er det nok en fandens god idé.
Er det kun dig, admin, da har adgang er det jo ikke livsnødvendigt.
Men gør det da de steder du har mulighed for det, så er man da sikker.
Husk også mysql_real_escape_string ved data der skal i mySQL database.
11-01-2003
Ok, jeg skal nok lige have en videre specificering, men jeg tror at jeg har kriteriet på plads.
Når informationen er leveret af mig selv, så er det ikke synderligt nødvendigt - hverken med filtrering af input eller escape'ing af output, men når vi er på den offentlige, "ukontrollérbare" side af applikationen, så er den del af output'et der er resultatet af input, genereret af offentligheden nødvendig at escape'e.
Ninja: jeg er ikke helt sikker på at den holder, for userinput kan jo sagtens være risikabelt selv om det bliver wrappet i HTML. Det er nok nærmere noget med at escape'e inde i strings, istedet for at escape'e hele strengen.
echo "{H1}Hello htmlentities($_POST['username']) - and welcome!{/H1}";
Jeg forstår bare ikke helt det der med, at det virkelig skulle være nødvendigt at escape'e outputtet, hvis man ellers har filtreret det input der leverer indholdet der output'es.
Er der ellers nogen ting der ikke er så åbenlyse at skulle escape'e, men som faktisk bør?
24-04-2006
#3
Jeg tror den eneste sikkerhedsmæssige faktor der ligger i at køre outputstrenge igennem htmlentities, er at du slipper for at folk embedder ondsindet javascript. Hvis du filtrerer det fra under inputproceduren, så vil jeg ikke mene du behøves bruge kræfter på at escape outputtet også.
11-01-2003
4#
Det er det jeg tænker, man hører bare mantra'et: "Filter input, escape output" overalt i forbindelse med sikkerhed i PHP programmering- hvilket giver een indtrykket, at man selvfølgelig skal gøre begge dele.