Gå til innhold

PHP sikkerhets problemer


Anbefalte innlegg

Hei,

Har laget prøvd meg på strpos() i mine sikkerhets fuksjoner, men det fungerer ikke.

Jo, det funker, den finner ut at <meta> ikke ska vere lov. Men jeg får ikke opp feilmedlingen.

Men det er kun når body og title = true at det fungerer. Ikke visst det bare er <meta> i title eller body.

Kunne noen ha hjulpet meg?

legger ut koden på pastebin.

http://pastebin.no/326l

 

Takker for svar!

Lenke til kommentar
Videoannonse
Annonse

Correct me if im wrong, men Meta brukes for og reloade siden eller sende brukeren til en annen side, right?

 

Da skjer det som oftest ved hjelp av noe ligende dette:

<meta http-equiv="refresh" content="600">

 

Og hvis du bare leter etter <meta>, ja da finner du ikke <meta ...> Det du leter etter er en REGEX (Regular Expression tror jeg det står for) som sjekker etter meta tagger og reagerer etter det. Og for og finne det, ja da har vi Google! :) (regex html meta tag)

 

-----

og for og svare på spørsmålet ditt.

 

 

str_pos gir posisjonen til stringen. Hvis meta er det første som er skrevet da er posisjonen null. I PHP sin verden så er 0 = false, 1 og alt over = true. Dvs at hvis <meta> er det første som er skrevet ja da er str_pos = 0. For og sjekke at det faktisk er satt en variabel så må du bruke isset($title_pos) og isset($body_pos).

Endret av TheRealL
Lenke til kommentar

Uff, her var det mye rart. For det første, hvorfor er «<meta>» et sikkerhetsproblem? Måten man forhindrer brukere å skrive html på siden er ved å escape output. Du skal ikke sjekke input for hver eneste bidige tag som kan skape problemer. Titt på htmlentities. Dessuten, å sjekke om «<meta>» forekommer vil ikke trigge feil dersom jeg f.eks. skriver «<meta attribute="this is dumb">».

 

strpos er for øvrig en funksjon som returnerer false dersom needle ikke forekommer i haystack. Korrekt måte å sjekke om noe har forekommet er ved strpos(..) !== false. Les mer i dokumentasjonen.

Lenke til kommentar

Hvorfor ikke? Dette skal brukes til en gjestebok. Visst man får disse stygge tegnene man får ved htmltetiles(?) elns, ser det ikke bra ut, så vist noe som <script blir oppdaga skal det slutte å fungere. Eks ved </script> for ikke å bli hacket.

Lenke til kommentar

Det finnes ørten måter å fucke opp siden din dersom du tillater HTML og blacklister det du tror er lurt. Du vil simpelthen ikke klare å beskytte deg mot alt. Derfor blacklister man ikke, man whitelister. Det skjer typisk ved bruk av f.eks. bbkoder, slik du skriver på dette forumet.

 

http://php.net/manual/en/book.bbcode.php

http://www.php.net/manual/en/function.preg-replace-callback.php (#3 eksempel)

Endret av Jonas
  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...