Sikkerhedshuller

Tags:    sikkerhed

Hej,

På en af mine sider er jeg blevet gjort opmærksom på, at der er nogle "XSS og html parameter pollution huller"

Jeg har prøvet og søge på google, og jeg kan ikke finde ud af, hvad det betyder, og hvor alvorligt det er. Nogle der ved det?



10 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 25 karma
Sorter efter stemmer Sorter efter dato
XSS står for cross-site-scripting og er ret alvorligt.

Du kan læse mere her http://en.wikipedia.org/wiki/Cross-site_scripting

Basicly er det hvor man via bruger input poster noget kode som så bliver afviklet på andre brugeres maskiner. Koden er så skadelig og udnytter dit website til fx. og sprede malware.



Der findes nogle forskellige måder at gøre det på, helt simpelt kan du bruge strip_tags(), hvis du vil have lidt mere kontrol så kan du bruge filter_var(). Du kan læse om det forskellige filtere her

Der er lidt flere forslag til hvordan det kan gøres på dette spørgsmål på SO.

Langt bedre end wikipedia er OWASPs sider om XSS.



Indlæg senest redigeret d. 18.03.2012 15:58 af Bruger #15754
Det ville være bedre, at omskrive det til en funktion du kan bruge

Fold kodeboks ind/udPHP kode 


Rettet til efter forslag fra @Søren



Indlæg senest redigeret d. 20.03.2012 08:46 af Bruger #17081
Vil lige tilføje at denne hjemmeside er super for at se hvilke trusler der øjeblikket er blevet rapporteret for masser af web systemer og OS. Det viser også hvor vigtigt det er at holde ens software opdateret! :)

Det er nok også en super god side for en hacker :(



Indlæg senest redigeret d. 18.03.2012 22:15 af Bruger #16502
Ligegyldig hvilken metode i bruger bør i rette de fejl der er.

Morten du har vidst glemt at indkapsle
Fold kodeboks ind/udPHP kode 

mellem { og }.

Dan du har en syntaksfejl - du mangler en { efter din if.

Siden magic quotes nok ikke ændrer sig under gennemløb af loopen kan den flyttes op så den kun tjekkes en gang:
Fold kodeboks ind/udPHP kode 




Tak for svaret.

Så vidt jeg kan læse mig til det, så kan jeg løse det ved at bruge htmlentities()

Lige nu har jeg en sikkerhedsfunktion på alle mine sider som hedder, når htmlentities() er sat ind:

Fold kodeboks ind/udPHP kode 


Er det sikkert nok??



Dan > Det giver vel samme resultat?



@Morten, ja samme resultat, men hvis du gør som Dan foreslår, slipper du for at skrive koden samtlige steder du har behov for at sikre dine input og kan i stedet bare køre dit objekt igennem funktionen.



Men når jeg ligger den i top.php, som bliver includet i alle mine filer, så bør alt input vel gå igennem den?



@Søren ... fair nok, jeg havde skrevet det på min mobil mens jeg var på farten, så det gik lidt hurtigt.

@Morten ... det kunne du ja, men du behøver ikke køre funktionen på hvert sidekald det er spild. Kald funktionen når du skal bruge $_GET og $_POST.



t