Puster Skrevet 1. november 2010 Del Skrevet 1. november 2010 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
TheRealL Skrevet 1. november 2010 Del Skrevet 1. november 2010 (endret) 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 1. november 2010 av TheRealL Lenke til kommentar
Jonas Skrevet 1. november 2010 Del Skrevet 1. november 2010 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
Puster Skrevet 1. november 2010 Forfatter Del Skrevet 1. november 2010 Så jeg skal bruke if($title_pos !== false) { echo "En av disse tingene ble funnet $error "; else Insert osv. } Noe slikt? Lenke til kommentar
Jonas Skrevet 1. november 2010 Del Skrevet 1. november 2010 Vel, ja. Men som sagt, ikke gjør det på den måten. Lenke til kommentar
Puster Skrevet 1. november 2010 Forfatter Del Skrevet 1. november 2010 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
Puster Skrevet 1. november 2010 Forfatter Del Skrevet 1. november 2010 Pluss at visst jeg endrer fra <meta> til <meta vil jo linjen du sendte bli busta?? Lenke til kommentar
AlecTBM Skrevet 2. november 2010 Del Skrevet 2. november 2010 Med htmlentities så slutter <script> tagger å funke, samt at den blir synlig. Og poenget med å endre fra <meta> til <meta istedenfor å bruke htmlentities (som "viser" <meta> tagen) skjønner jeg ikke Lenke til kommentar
Puster Skrevet 2. november 2010 Forfatter Del Skrevet 2. november 2010 Men vil det jeg sa fungere? Jeg vil ikke at når man går i gjestebok er det noen som har prøvd å hacke så stør disse rare tegnene å meta i innlegget. jeg vil forhindre han FØR det blir satt inn i databsene osv. Lenke til kommentar
MikkelRev Skrevet 2. november 2010 Del Skrevet 2. november 2010 Kanskje dette er noe for deg: http://php.net/manual/en/function.strip-tags.php Lenke til kommentar
Thomas. Skrevet 2. november 2010 Del Skrevet 2. november 2010 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. Benytt heller htmlspecialchars() da. Lenke til kommentar
Puster Skrevet 2. november 2010 Forfatter Del Skrevet 2. november 2010 dere skjønner jo ikke problemet. htmlspecialchars() fjerner jo bare < og da vil heller ikke koder som <img> osv fungere. Kan jeg ikke bruke det jeg sa? Lenke til kommentar
Jonas Skrevet 2. november 2010 Del Skrevet 2. november 2010 (endret) 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 2. november 2010 av Jonas 1 Lenke til kommentar
MikkelRev Skrevet 2. november 2010 Del Skrevet 2. november 2010 Leste du posten min Puster? Med det kan du også whiteliste. Lenke til kommentar
Puster Skrevet 2. november 2010 Forfatter Del Skrevet 2. november 2010 hmm, disse wyswig elns. Visst man skriver <script tags i dem hva skjer da? Lenke til kommentar
MikkelRev Skrevet 2. november 2010 Del Skrevet 2. november 2010 Det kommer an på backend Wysiwyg er frontend, og igrunnen det samme som en oppgradert textarea. Men leste du ikke de to siste postene? Lenke til kommentar
Puster Skrevet 2. november 2010 Forfatter Del Skrevet 2. november 2010 Joda har lest dem å skal ta en titt på de funksjonene. Jeg starta jo med php for 1mnd siden. Så har blitt ganske flink. Skal se videre på det litt senere. Jeg bruker TinyMce til Wyswigeditor:) Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå