Gå til innhold

Passord beskyttelse på upload script (løst)


Anbefalte innlegg

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 :D 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 av Lasso5000
Lenke til kommentar
Videoannonse
Annonse

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
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

 

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
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
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
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
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 av jorgis
Lenke til kommentar
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...( :cry: )... "In the memory that they died for a greater cause."

 

 

 

EDIT:La til noe

Endret av MC2
Lenke til kommentar
Det er derimot mulig å sette at kaken skal begå selvmord etter en viss tid...( :cry: )... "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 av anners
Lenke til kommentar
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 av Lasso5000
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...