Gå til innhold

hjelp til endring i login script


Anbefalte innlegg

hei.

jeg har problemer med en hacker som har logget seg inn i cms'et mitt og slettet postet og lagt ut egne (se her for sist tråd).

 

det eneste jeg har igjen nå er å få innloggingssystemet til å fungere.

jeg har nå gått fra å ha passord i fil til database.

jeg lurte på om noen kunne hjelpe meg med å fikse dette, jeg har bare tilgang til datamaskinen med kildekoder og sånt nå i helgen så det hadde vært supert om jeg kunne fått hjelp til å fikse det i løpet av i dag og i morgen.

 

her kommer koden:

 

først har jeg en kode som ligger øverst i filene jeg skal beskytte

<?php
session_start();

if($_SESSION['brukernavn'] && $_SESSION['passord'])
{
$author=$_SESSION['brukernavn'];
}
else
{ 
header ("Location: http://www.cms.predicted.net/login/");
 exit;
}

// your session registering here
// Please note to verify a password and display a 403 error.


session_start();
if(isset($_SESSION['brukernavn'])) 
{ 
$author=$_SESSION['brukernavn'];
} 
if
(!isset($_SESSION['brukernavn']))
{
 header("Location: http://www.cms.predicted.net/login/");
 echo"Du må logge inn får å nå disse sidene"; 
} 
?>

så har jeg koden som sjekker infoen fra login skjemaet:

<?php
$brukernavn = "bruker";
$MD5_passord = "pass"; 
$brukerdata = $_POST['brukernavn'];
$passord = md5($_POST['passord']);

if($passord == "$MD5_passord" && $brukerdata == "$brukernavn"){

    session_start();
   $_SESSION['innlogget'] = 1;
   $_SESSION['brukernavn'] = $brukernavn;
   $_SESSION['passord'] = $MD5_passord;
   
header ("Location: http://www.cms.predicted.net/index.php");
}
   
   else{
       echo "Feil brukernavn eller passord! Sjekk at Caps Lock ikke er aktivert og prøv igjen."; 
   }
   
?>

er dette en sikker måte og hvordan kan jeg evt gjøre den sikker samtidig som jeg endrer passordsjekken til å gå mot databasen?

håper noen kan hjelpe.

 

/Smidt

Lenke til kommentar
Videoannonse
Annonse

tusen takk, ser ut som om det er akkurat det jeg trenger, men hvordan bruker jeg klasser. har ikke vært borti det før.

har forstått poenget med at en lager en funksjon og så kaller en på den funksjonen hver gang det er bruk for den, men vet ikke hvordan jeg gjør det i praksis.

Lenke til kommentar

du tilordner en klasse til et objekt. Et objekt er en variabel som består av pekere separert med ->

 

så det er noen små ting du må ordne selv.

 

-Lag et login form med tillhørende action (der etter de har trykket submit)

 

der må du bruke koden:

<?php
require_once('login.class.php'); //klassen jeg ga deg i min forrige post

$login = new User; //her tilordenr du klassen User til objektet $login
$login->login($_POST['brukernavn'], $_POST['pasord']); //her kjører du metoden login() som er inne i klassen User
?>

 

Skriv en slik kode pluss et loginform så er logindelen utført.

 

Logout går omtrentlig likt:

<?php
require_once('login.class.php'); //klassen fra min forrige post

$login = new User;
$login->logout();
?>

 

får i sjekke om en bruker er innlogget, og sjekke at det ikke er mere enn 15 min siden han refreshet sist bruker du denne:

<?php
require_once('login.class.php');
$login = new User;

if($login->check_login() == true){
 //brukeren er logget inn
} else {
 //brukeren ikke logget inn
}
?>

Lenke til kommentar

okei, nå forstår jeg litt mer.

jeg har satt det opp sånn som du sa, men når jeg trykker på login i skjemaet får jeg opp denne feilmeldingen.

tror kanskje det kan ha noe med databaseoppsettet å gjøre.

der har jeg i tabellen med brukere

brukernavn

passord

og id?

er det riktig eller skal jeg bare ha bruker og pass?

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