Sjark Skrevet 12. februar 2006 Skrevet 12. februar 2006 (endret) Hey, jeg har laget et uploadscript som fungere utmerket, men jeg trenger passord beskyttelse for at ingen andre skal kunne gå inn og laste opp. Jeg har prøvt og prøvt men får ikke det med sessions til. Noen som kan hjelpe? Det skal bare vere en bruker osv. Edit: fikk det til takk for hjelpen alle sammen. Upload.php ble slik: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> </head> <body> <form name="form1" method="post" action="upload.php"> Passord:<br> <input name="pass" type="password" id="pass"> </p> <p> <input type="submit" name="Submit" value="Logg inn"> </p> </form> <? if (md5($_POST['pass']) == 'fa310b5f9f192d0fb09689d3f22db875') { ?> <form action="upload_act.php" method="post" enctype="multipart/form-data" name="form1"> <p>Bilde år: <br> <select name="select" id="select"> <option>2004</option> <option>2005</option> <option>2006</option> </select> <br> Bilde (stort):<br> <input type="file" name="file"> <br> Tumb:<br> <input type="file" name="file2" id="file2"> </p> <p> <input type="submit" name="Submit" value="Last Opp"> </p> </form> <? } else { echo "Feil Passord"; } ?> </body> </html> med loginen direkte inn i scriptet, i steden for at den var i en egen fil Endret 15. februar 2006 av Lasso5000
EirikO Skrevet 12. februar 2006 Skrevet 12. februar 2006 Det enkleste er (ofte det beste) å sette en session: if($user == "Petter" && $pass == "heioghopp") { $_SESSION['login'] = 1; } så kan du sjekke om noen er logget inn med: if($_SESSION['login'] == 1) { print("Du er logget inn"); } Så kan du jo bruke f.eks. md5 hvis du vil ha det litt sikrere. Husk å legge inn en session_start(); øverst på passordsidene!
Sjark Skrevet 12. februar 2006 Forfatter Skrevet 12. februar 2006 Det enkleste er (ofte det beste) å sette en session: if($user == "Petter" && $pass == "heioghopp") { $_SESSION['login'] = 1; } så kan du sjekke om noen er logget inn med: if($_SESSION['login'] == 1) { print("Du er logget inn"); } Så kan du jo bruke f.eks. md5 hvis du vil ha det litt sikrere. Husk å legge inn en session_start(); øverst på passordsidene! 5591582[/snapback] Takker, skal teste det, men altså det du mener er at feks på upload.php skal jeg ha session_start(); øverste på siden, så setter jeg alt innholdet inn i if($_SESSION['login'] == 1) { print("Du er logget inn"); } if spøringa rett under?
EirikO Skrevet 12. februar 2006 Skrevet 12. februar 2006 Takker, skal teste det, men altså det du mener er at feks på upload.php skal jeg ha session_start(); øverste på siden, så setter jeg alt innholdet inn i if($_SESSION['login'] == 1) { print("Du er logget inn"); } if spøringa rett under? 5591666[/snapback] Ja. Blir noe sånt som: if($_SESSION['innlogget'] != 1) { printf("Du er ikke logget inn!"); } else { kjør spørring resten av siden; } Synes det er lettere å sjekke om man ikke er logget inn... Men det er jo smak og behag..
MC2 Skrevet 12. februar 2006 Skrevet 12. februar 2006 hvorfor ikke bare en .htaccess fil i mappa hvor upload scriptet ligger? Men da må du ha en mappe bare for uploadscriptet for at .htaccess beskytter alt inni mappa.
Ernie Skrevet 12. februar 2006 Skrevet 12. februar 2006 Det enkleste er (ofte det beste) å sette en session: if($user == "Petter" && $pass == "heioghopp") { $_SESSION['login'] = 1; } 5591582[/snapback] Dette er det overhode ikke sikkert. Hva skjer hvis php-motoren svikter? Jo, da skrives alt sammen ut og alle kjenner til vedkommendes passord. Vil på det absolutt sterkeste anbefale å i det minste lagre passordet hashet og skrive f.eks. følgende: if($user == "Petter" && md5($pass) == putt inn hash her)
MC2 Skrevet 12. februar 2006 Skrevet 12. februar 2006 Det enkleste er (ofte det beste) å sette en session: if($user == "Petter" && $pass == "heioghopp") { $_SESSION['login'] = 1; } 5591582[/snapback] Dette er det overhode ikke sikkert. Hva skjer hvis php-motoren svikter? Jo, da skrives alt sammen ut og alle kjenner til vedkommendes passord. Vil på det absolutt sterkeste anbefale å i det minste lagre passordet hashet og skrive f.eks. følgende: if($user == "Petter" && md5($pass) == putt inn hash her) 5592622[/snapback] og for å sikre det enda mer burde du gjør sånn: if($user == "Petter" && md5($pass) == putt inn md5 hash her && sha1($pass) == putt inn sha1 hash her && crc32($pass) == putt inn crc32 kalkulasjon her som integer)
EirikO Skrevet 12. februar 2006 Skrevet 12. februar 2006 Jeg skrev da at man burde putte på en md5... Har vært mye snakk om sikkerhet her i det siste, men for de aller fleste mener jeg det vil holde med en md5.
Ernie Skrevet 12. februar 2006 Skrevet 12. februar 2006 Jeg skrev da at man burde putte på en md5... Har vært mye snakk om sikkerhet her i det siste, men for de aller fleste mener jeg det vil holde med en md5. 5592656[/snapback] "Anta at angriper kjenner koden" heter det seg. Lagrer man passordet i klartekst har du et aldri så lite problem ...
Torbjørn Skrevet 12. februar 2006 Skrevet 12. februar 2006 hva trenger du sessions for i ditt problem?
jorgis Skrevet 12. februar 2006 Skrevet 12. februar 2006 (endret) hva trenger du sessions for i ditt problem? 5592762[/snapback] Godt poeng. Trenger i prinsippet ikke sessions i det hele tatt. En annen ting er at det er temmelig idiot å bare sette $_SESSION['loggedin'] = 1 og senere sjekke den. Hvem som helst kan jo selv sette en session selv, og da sliter du om du ikke sjekker passord i session. Mye bedre å sette en streng, som f.eks. denne i sessionen: md5($brukernavn . $passord . $salt . md5($salt)); EDIT: var ikke en gyldig BBCode, nei... Endret 12. februar 2006 av jorgis
Magnus Holm Skrevet 13. februar 2006 Skrevet 13. februar 2006 (endret) Kan du ikke bare ha et passord-felt i uploadscriptet? if (md5($_POST['pass']) == "hash") { // upload stuff! } else { echo "feil passord!"; } Endret 13. februar 2006 av Judofyr
Arne Skrevet 13. februar 2006 Skrevet 13. februar 2006 Er det ikkje eit alternativ å sette ei kake som virkar som ein session (går ut når du skukkar nettlesaren) som begrensar seg til webområdet ditt?
MC2 Skrevet 13. februar 2006 Skrevet 13. februar 2006 (endret) Er det ikkje eit alternativ å sette ei kake som virkar som ein session (går ut når du skukkar nettlesaren) som begrensar seg til webområdet ditt? 5599370[/snapback] det blir grundig unødvendig dersom det bare er et script det er snakk om, og det er vanskelig å slette en kake når noen forlater en side. Det er derimot mulig å sette at kaken skal begå selvmord etter en viss tid...( )... "In the memory that they died for a greater cause." EDIT:La til noe Endret 13. februar 2006 av MC2
neivoll Skrevet 13. februar 2006 Skrevet 13. februar 2006 (endret) Det er derimot mulig å sette at kaken skal begå selvmord etter en viss tid...( )... "In the memory that they died for a greater cause." 5599690[/snapback] Det er tydelig at du bryr deg om denne kaken. Det er en kvalitet vi alle burde beundre og ta lærdom av. Endret 13. februar 2006 av anners
BigJackW Skrevet 13. februar 2006 Skrevet 13. februar 2006 Ta en titt på denne: http://www.megaspill.net/content/view/42/2/
Sjark Skrevet 14. februar 2006 Forfatter Skrevet 14. februar 2006 Takker for alle svar, har holdt meg unda session og lagt passordet direkte i upload scriptet. MD5 hashet såklart.
Sjark Skrevet 14. februar 2006 Forfatter Skrevet 14. februar 2006 (endret) Kan du ikke bare ha et passord-felt i uploadscriptet? if (md5($_POST['pass']) == "hash") { // upload stuff! } else { echo "feil passord!"; } 5598195[/snapback] Hmm prøvte det nå, men den viser bare blank side =/ litt hjelp plz edit: Uploadscript: <? if (md5($_POST['pass']) == 'fa310b5f9f192d0fb09689d3f22db875') { // upload stuff! ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> </head> <body> <form action="upload_act.php" method="post" enctype="multipart/form-data" name="form1"> <p>Bilde år: <br> <select name="select" id="select"> <option>2004</option> <option>2005</option> <option>2006</option> </select> <br> Bilde (stort):<br> <input type="file" name="file"> <br> Tumb:<br> <input type="file" name="file2" id="file2"> </p> <p> <input type="submit" name="Submit" value="Last Opp"> </p> </form> </body> </html> <? } else { echo "Feil passord!"; echo "<br> Trykk <a href='login.php'>her</a> for og prøve igjen." } ?> LoginScript: <html> <head> <title>Login</title> </head> <body> <form name="form1" method="post" action="upload.php"> Passord:<br> <input name="pass" type="password" id="pass"> </p> <p> <input type="submit" name="Submit" value="Logg inn"> </p> </form> </body> </html> Ser noen feilen? Endret 14. februar 2006 av Lasso5000
kakkle Skrevet 14. februar 2006 Skrevet 14. februar 2006 Det var vel ikke slik Judofyr mente, da, eller ? Han mente vel at du fjerner hele login.php scriptet, og lager et ekstra felt i upload formen, hvor passordet skal skrives inn, så legger du inn den koden han skrev, øverst i upload_act.php, slik at kun de som har skrevet inn rett passord får laste opp filer. Når får du en tom side, forresten ? Etter å ha logget inn, eller etter at du prøver å laste opp filer ? Eller får du ikke opp loginsiden engang ?
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å