Blib Skrevet 26. juli 2003 Del Skrevet 26. juli 2003 Okay, jeg har da altså laget en side fra scratch,hvor halve meningen er at du skal kunne oppdatere siden uten å måtte logge deg inn på FTPen og editere .php filer. Slik som jeg har det da er lignende HW.no, med en midtrad som inneholder nyheter. For å legge til en slik nyhet logger en seg inn via forsiden, legger til det en vil skal bli den neste nyheten i en tekstboks og klikker OK. Problemet: Jeg vil ikke at noen skal se tekstboksene osv hvor jeg legger inne nyheter via. Altså må en ha passord for å se disse sidene. Det er greit nok. På forsiden ligger et form som en skriver inn brukernavn og passord i. Så sendes resultatet til logget_inn.php som sjeker om passordet stemmer eller ikke. Hvis det stemmer tar den en include ("oppdater.php"); og viser den sida på logget_inn.php. hvis ikke viser den feilmelding. Nederst på oppdater.php er den en Submit-knapp. Når en trykker på denne blir all informasjonen overført og forsiden blir oppdatert. Men, det er et sikkerhetsproblem. Hvis noen finner ut at det er en side som heter oppdater.php, er det bare å skrive inn denne addressen i nettleseren. Så skriver en inn nyheten og trykker Submit. Så hvordan bør dette løses? Lenke til kommentar
[kami] Skrevet 27. juli 2003 Del Skrevet 27. juli 2003 slik jeg har gjort det i login sidene mine.. så includer jeg en "isLoggedIn.php" i hvert script som sjekker om brukeren er logget inn (du kan jo f.eks sende med brukernavn/pw videre på hver side som cookie, eller bruke noe session styr) om bruker/pw ikke stemmer så bare tar du en die og viser en innlogginsside, og er alt fint viser du siden med x-tra innhold med andre ord MÅ du sjekke om brukeren er logget inn på HVER side du har tenkt til å ha "hidden stæsj" på, ellers kan jo hvemsomhelst poste. Lenke til kommentar
Nervetattoo Skrevet 27. juli 2003 Del Skrevet 27. juli 2003 Bruk sessions. På logg inn sjekk siden så starter du en session og registrerer en variable som du videre sjekker på hver side som er beskyttet. Du kan bare gjøre det enkelt og bruke $_SESSION['sjekk'] = true; Bare husk at du må bruke start_session kommandoen på hver side, og så sjekke om de er logget inn. Eller du kan jo gjøre det samme med cookies, men da vil jo folk som har støtte for cookies avslått få problemer. Jeg bruker i hvertfall sessions til dette. Lenke til kommentar
fanti Skrevet 28. juli 2003 Del Skrevet 28. juli 2003 Jepp, sessions sammen med en fornuftig IsLoggedIn funksjon som du har på toppen av hver side som er "hemmelig" er alt som trengs Lenke til kommentar
abcd423417984 Skrevet 28. juli 2003 Del Skrevet 28. juli 2003 personlig bruker jeg en klasse sammen med sessions for dette. da sjekker constructoren om brukeren er logget inn i constructoren, og lagrer all data om brukeren i en variabel i objektet. i tillegg holder objektet tilkoblingen til databasen slik at jeg kan bruke den ved senere anledninger. Lenke til kommentar
Blib Skrevet 28. juli 2003 Forfatter Del Skrevet 28. juli 2003 personlig bruker jeg en klasse sammen med sessions for dette. da sjekker constructoren om brukeren er logget inn i constructoren, og lagrer all data om brukeren i en variabel i objektet. i tillegg holder objektet tilkoblingen til databasen slik at jeg kan bruke den ved senere anledninger. Aiii. Heh, det var voldsomt "Way over my head" bare da. Jeg har forstått at de to neste aspektene jeg skal se på når det gjelder PHP er sessions og cookies. Sessions fattet jeg NULL av når jeg sist tittet på det, mens cookies virket litt for enkelt men jeg bruker for øyeblikket bare noen linjer med kode i et dokument som sjekker om du har skrevet inn rett passord of brukernavn, også lar jeg denne siden skrive ut <form>et ved hjelp av PRINT. Fungerer ganske greit det også, eneste minuset er at passordet ligger rett ute på sources bare bak en md5-kryptering. da er det liksom mulig å brute-force det MYE enklere enn hvis det lå et sted sikkert. Jeg tror nok jeg må bevege meg over på mySQL snart jah Lenke til kommentar
Egil.B Skrevet 28. juli 2003 Del Skrevet 28. juli 2003 jeg skrev et en stund siden. Kan sikkert gjøres bedre, men det er forhåpentligvis brukbart. Alt du trenger å gjøre er å hashe deg et passord med md5(passord) og adde det i scriptet med brukernavn: <?php // Admin Auth System // laget av Egil.B // // // starter session // som senere skal brukes til å autorisere brukeren // gjennom hele administrasjons-systemet session_start(); // hvis php session ikke eksisterer registrer variabler if ((!$sessionpass) || (!$username)) { Session_register('sessionpass'); Session_register('username'); //sett variabel $password og $username fra post_vars $password=$_POST['password']; $username=$_POST['username']; //krypterer passordet fra formen $md5pass = md5($password); } else { // bruker passord som ligger lagret i gjeldende session $md5pass = $sessionpass; } // validate user // ikke mysql ennuh if(($md5pass == 'md5hash') && ($username == 'bruker')) { // hvis passord er korrekt lagrer passord i session $sessionpass = $md5pass; } else { // if login = false include('login.php'); exit; } // if login = true //..... // //script end ?> 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å