Sjark Skrevet 12. februar 2006 Del 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 Lenke til kommentar
EirikO Skrevet 12. februar 2006 Del 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! Lenke til kommentar
Sjark Skrevet 12. februar 2006 Forfatter Del 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? Lenke til kommentar
EirikO Skrevet 12. februar 2006 Del 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.. Lenke til kommentar
MC2 Skrevet 12. februar 2006 Del 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. Lenke til kommentar
Ernie Skrevet 12. februar 2006 Del 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) Lenke til kommentar
MC2 Skrevet 12. februar 2006 Del 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) Lenke til kommentar
EirikO Skrevet 12. februar 2006 Del 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. Lenke til kommentar
Ernie Skrevet 12. februar 2006 Del 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 ... Lenke til kommentar
Torbjørn Skrevet 12. februar 2006 Del Skrevet 12. februar 2006 hva trenger du sessions for i ditt problem? Lenke til kommentar
jorgis Skrevet 12. februar 2006 Del 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 Lenke til kommentar
Magnus Holm Skrevet 13. februar 2006 Del 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 Lenke til kommentar
Arne Skrevet 13. februar 2006 Del 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? Lenke til kommentar
MC2 Skrevet 13. februar 2006 Del 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 Lenke til kommentar
neivoll Skrevet 13. februar 2006 Del 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 Lenke til kommentar
BigJackW Skrevet 13. februar 2006 Del Skrevet 13. februar 2006 Ta en titt på denne: http://www.megaspill.net/content/view/42/2/ Lenke til kommentar
Sjark Skrevet 14. februar 2006 Forfatter Del Skrevet 14. februar 2006 Takker for alle svar, har holdt meg unda session og lagt passordet direkte i upload scriptet. MD5 hashet såklart. Lenke til kommentar
Sjark Skrevet 14. februar 2006 Forfatter Del 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 Lenke til kommentar
Arne Skrevet 14. februar 2006 Del Skrevet 14. februar 2006 Og fila er ikkje lasta opp? Lenke til kommentar
kakkle Skrevet 14. februar 2006 Del 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 ? 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å