kilogram Skrevet 13. november 2006 Del Skrevet 13. november 2006 For å lage dynamiske websider i PHP er man nødt til å ta imot og behandle data fra brukeren. Bare slik kan man tilpasse nettsiden til leseren. Les mer Lenke til kommentar
HellFire- Skrevet 13. november 2006 Del Skrevet 13. november 2006 For å lage dynamiske websider i PHP er man nødt til å ta imot og behandle data fra brukeren. Bare slik kan man tilpasse nettsiden til leseren. Les mer 7275562[/snapback] Må si jeg liker måten du skriver å forklarer på! Takk for 3 flotter guider! -Vegard Lenke til kommentar
vegham Skrevet 13. november 2006 Del Skrevet 13. november 2006 (endret) Uttdrag i fra PHP- & MySQL-innføring: Kapittel 6 <?php if ($_REQUEST['fornavn'] && $_REQUEST['etternavn']) { $fornavn = htmlentities(strip_tags( stripslashes($_REQUEST['fornavn']))); $etternavn = htmlentities(strip_tags( stripslashes($_REQUEST['etternavn']))); echo "Velkommen, $fornavn $etternavn!"; } else { echo "Du har ikke komt til denne siden på rett måte."; } ?> Koden vi ser over er ikke-strict PHP. dvs. ikke riktig PHP syntax. (noe som fører til tregere load) Riktig kode i dette tilfellet ville være: if (!empty($_REQUEST['fornavn']) && !empty($_REQUEST['etternavn'])) isset() og empty() funksjonene vi bruker for å sjekke om variabler er satt i en 'if'. Angående bilde opplastning så er det å validere ei fil etter extention (f.eks. bilde.jpg; hvor .jpg er extention) bare tull. Dette er utrolig lett å lure seg unna. En sikkrere og forholdsvis lett måte å sjekke om at et bilde virkelig er et bilde er å bruke getimagesize() som faktisk følger med i standard PHP. Vi bruker rett og slett funksjonen for å sjekke bildet sin bredde og høyde i pixel. Les mer om getimagesize() på http://no.php.net/getimagesize. Endret 13. november 2006 av Wulong Lenke til kommentar
The Red Devil Skrevet 13. november 2006 Del Skrevet 13. november 2006 stripslashes() Dette er strengt tatt ingen sikkerhetsfunksjon, men den blir brukt for å forhindre at data sendt fra brukeren blir forandret i oversendelsen. Data som blir oversendt fra brukeren som inneholder tegn som ' (enkelt anførselstegn) eller " (dobbelt anførselstegn) vil få en skråstrek lagt til foran hvert av disse tegnene. stripslashes() fjerner disse igjen. Dette stemmer ikkje heilt, ' og " vil bare bli "escaped" vist magic_quotes er aktiv. Du kan derimot ikke kun stole på denne metoden, fordi brukeren kan benytte seg av en nettleser som ikke har støtte for dette, og dermed få lastet opp en større fil. Slik ser iallfall skjemaet ut med en begrensing på 50 kB; Du har ikkje lagt til html koden for å begrense fil størrelsen i kode eksempelet. Lenke til kommentar
kilogram Skrevet 13. november 2006 Forfatter Del Skrevet 13. november 2006 Du kan derimot ikke kun stole på denne metoden, fordi brukeren kan benytte seg av en nettleser som ikke har støtte for dette, og dermed få lastet opp en større fil. Slik ser iallfall skjemaet ut med en begrensing på 50 kB; Du har ikkje lagt til html koden for å begrense fil størrelsen i kode eksempelet. 7276069[/snapback] Tabbe! Fiksa. Lenke til kommentar
Saiko Skrevet 13. november 2006 Del Skrevet 13. november 2006 Du kan se at variabel-rekken begynner med et spørsmålstegn, og videre utover separeres variabler med et-tegn. Her mangler det vel en &? Lenke til kommentar
qualbeen Skrevet 13. november 2006 Del Skrevet 13. november 2006 Her mangler det vel en &?7276418[/snapback] Kommer an på øyet som ser. Tegnet '&' har nemlig navnet 'et'.... http://no.wikipedia.org/wiki/%26 Lenke til kommentar
Saiko Skrevet 13. november 2006 Del Skrevet 13. november 2006 Touché Takk for oppklaringen Lenke til kommentar
ventle Skrevet 13. november 2006 Del Skrevet 13. november 2006 Lite tips: IKKE IKKE IKKE bruk $_REQUEST-variabelen. Denne kan lett overskrives av brukeren ved å sette en annen verdi i en cookie med samme navn. bruk de respektive superglobalene $_GET, $_POST og $_COOKIE, dette sparer deg for mye banning og utøvelse av vold mot uskyldig maskinvare. Hilsen en som brukte LANG tid og tok ut mye aggresjon på tastaturet før jeg fant ut at en av de største svakhetene i PHP-nuke er at det ikke skilles mellom disse variablene, og at jeg ikke fikk logget inn på siden fordi brukernavn-feltet i påloggingsskjemaet heter 'username' og en annen side på samme domene setter en cookie med samme navn, men da med feil verdi. Lenke til kommentar
Gjest Slettet+9018234 Skrevet 13. november 2006 Del Skrevet 13. november 2006 (endret) Se opp, og husk mysql_real_escape_string for $_GET/$_POST-variabler! Det er svært enkelt i hvilken som helst sammenheng med $_GET[]/$_POST[]-syntaks å få serveren til å kjøre DIN kode, hvis du har gjort en dårlig kodejobb! Mener du enkelt kan mysql_injection_attack med \"OR 1=1'\# alt etter skigard er jo kun kommentarer, slik at her er det smutthull. www.phphacks.com så ser du hva jeg mener. De artiklene de skriver er absolutt minimum hvis du skal programmere et nettsted med en litt større besøkshorisont enn bestemors gjestebok. Her kan du se hva kraftig, massivt og dedikert arbeide på hobbybasis kan utmunne i, sålenge du holder tungen rett i munn! The DOS Spirit (stort enmanns/fåmanns-prosjekt) Endret 13. november 2006 av Slettet+9018234 Lenke til kommentar
Kent (StudioFreya) Skrevet 13. november 2006 Del Skrevet 13. november 2006 Tiden da man konstruerer SQL-setninger med å sammenføye (concatenate) er forbi! Det er _ingen_ grunn til å ikke bruke metodikken som er beskrevet her: http://no.php.net/manual/en/function.mysql...-bind-param.php Hvis denne måten blir brukt på alle SQL-setningene i et produkt er tiden med SQL-injections over og forbi. Lenke til kommentar
Vindstille Skrevet 13. november 2006 Del Skrevet 13. november 2006 (endret) Se opp, og husk mysql_real_escape_string for $_GET-variabler! Det er svært enkelt i hvilken som helst sammenheng med $_GET[]-syntaks å få serveren til å kjøre DIN kode, hvis du har gjort en dårlig kodejobb! 7279417[/snapback] Gjelder ikke bare for GET variabler. Man kan fint få serveren til å kjøre skript med Post også. Men det er selfølgelig i de programmeringssammenhengene man bruker GET cross-site-scripting er mest aktuelt. Mens i de sammenhengene man bruker post, må man mest være oppmerksom på SQL cracking. Endret 13. november 2006 av JonT Lenke til kommentar
Lostfields Skrevet 14. november 2006 Del Skrevet 14. november 2006 Hei, det publiseringsverktøyet "ne:o", har det noe hjemmeside eller er det hjemmesnekra? Lenke til kommentar
kilogram Skrevet 14. november 2006 Forfatter Del Skrevet 14. november 2006 Hei, det publiseringsverktøyet "ne:o", har det noe hjemmeside eller er det hjemmesnekra? 7281394[/snapback] Ne:o er utvikla her "på huset," og har ikkje blitt gjort tilgjengelig for offentligheten. Det er kanskje like greit, siden det er veldig spesialtilpassa til vårt eige bruk, og sannsynligvis ikkje ville passe særlig bra til andre. Lenke til kommentar
dios Skrevet 14. november 2006 Del Skrevet 14. november 2006 Men merk også at denne funksjonen ikke godkjenner e-postadresser med nasjonale bokstaver, slik som de særnorske bokstavene, og at den derfor ikke godkjenner e-postadresser på IDN-domener. Dette er en svakhet i PHP nå som de fleste browsere og mange epostprogrammer støtter IDN. Men det er noen som jobber med det, se f.eks. PHP-IDN eller idn-pakken i PECL (gammel, ikke vedlikeholdt). Og for øvrig mener jeg fortsatt at bøker som Innocent Code er høyst relevante for denne artikkelserien, den er jo tross alt skrevet slik at folk med lite programmeringserfaring også har stor nytte av den. Lenke til kommentar
Crowly Skrevet 14. november 2006 Del Skrevet 14. november 2006 (endret) Lite tips: IKKE IKKE IKKE bruk $_REQUEST-variabelen. Denne kan lett overskrives av brukeren ved å sette en annen verdi i en cookie med samme navn. bruk de respektive superglobalene $_GET, $_POST og $_COOKIE, dette sparer deg for mye banning og utøvelse av vold mot uskyldig maskinvare. Hilsen en som brukte LANG tid og tok ut mye aggresjon på tastaturet før jeg fant ut at en av de største svakhetene i PHP-nuke er at det ikke skilles mellom disse variablene, og at jeg ikke fikk logget inn på siden fordi brukernavn-feltet i påloggingsskjemaet heter 'username' og en annen side på samme domene setter en cookie med samme navn, men da med feil verdi. 7279281[/snapback] Dette kommer ganske tydelig frem i manualen: $_REQUEST: Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted.Kilde: http://no2.php.net/manual/en/language.vari....predefined.php Så det er å anbefale å bruke $_GET, $_POST og $_COOKIE så har du mer kontroll over hvor informasjonen kommer i fra. Endret 14. november 2006 av crowly Lenke til kommentar
vegham Skrevet 19. november 2006 Del Skrevet 19. november 2006 Hvorfor heter tutorialen "... & MySQL-innføring..." ? jeg kan virkelig ikke se noe MySQL relatert her. Leter jeg for dårlig? Lenke til kommentar
qualbeen Skrevet 19. november 2006 Del Skrevet 19. november 2006 tolmodighet wulong. Det kommer nok med man kan ikke gape over alt på en gang, derfor har de første 6 kapittelen omhandlet php. Dette står forøvrig forklart et sted i teksten også... Når MySQL-delen kommer vet jeg ikke, men den kommer nok! Lenke til kommentar
aeinstein Skrevet 20. november 2006 Del Skrevet 20. november 2006 Bare fortsett å lage guider Jo flere steder man leser en ting og fra jo flere synsvinkler jo bedre blir forståelsen OT: Fins det programmer som retter syntax? Slik at jeg slipper å lete etter en feil som: "ehco" istedenfor: "echo" De er dæven så vanskelige å finne :( Lenke til kommentar
ventle Skrevet 20. november 2006 Del Skrevet 20. november 2006 OT: Fins det programmer som retter syntax? Slik at jeg slipper å lete etter en feil som:"ehco" istedenfor: "echo" De er dæven så vanskelige å finne :( 7320806[/snapback] Find-funksjonen i Notepad++ er veldig hjelpsom til dette så lenge du vet hva du skal søke etter, that is 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å