/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Optimering af Sikkerhed i loginsytem
Fra : Alexander P.


Dato : 07-12-05 19:10

Jeg er ved at lave et sikkerheds system og har søgt lidt på
Google, s2a.dk osv. efter lidt esktra sikkerhed, eftersom der
findes uttallige måder at bryde det på, og vil så nu håbe på at
nogle vil komme med nogle svar på hvordan det er muligt at
forbrede sikkerheden

min kode kommer her:
<?php
session_start();
$conn = mysql_connect("chopin.1go.dk", "free60077", "haddock");
mysql_select_db("free60077");

htmlentities(trim($_POST['pass']));

if(is_array($HTTP_POST_VARS)) {
$brugernavn =
htmlentities(trim($HTTP_POST_VARS['brugernavn']));
$password = htmlentities(trim($HTTP_POST_VARS['password']));
} elseif (is_array($_POST)) {
$brugernavn = htmlentities(trim($_POST['brugernavn']));
$password = htmlentities(trim($_POST['password']));
}

if ((!$brugernavn) || (!$password)) { // Hvis der ikke er skrevet
brugernavn og/eller password, gå til login.php - og exit;
header("Location: login.php");
exit;
} else { // Ellers går vi igang med at se om brugeren virkelig
eksisterer!

$resultat = mysql_query("SELECT id FROM `brugere` WHERE
brugernavn = '$brugernavn' AND password = '$password'"); // Vi
søger efter brugere i databasen der har samem brugernavn og
password
$accepteret = mysql_num_rows($resultat); // Vi tæller om hvor
mange vi fik, der burde være fundet 1

if($accepteret == 1) { // Hvis der blev fundet 1, start
sessionsne
$_SESSION['accepteret'] = 1;
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['id'] = $id;
echo "Du er nu inde";
} else { // Hvis der IKKE blev fundet en, var
kodeordet/brugernavnet forkert, smid den intetandende bruger
tilbage til login.php - og exit;
header("Location: login.php");
exit;
}
}
?>
</body>
</html>

På forhånd tak!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Thomas Løjmann Jørge~ (08-12-2005)
Kommentar
Fra : Thomas Løjmann Jørge~


Dato : 08-12-05 21:38

Hej,

Et godt sted at starte apropos sikkerhed, er nok at lade være med at
poste host, username og password til din database (som sikkert er samme
for dit FTP login og noget mail admin - hvis jeg da kender billig
hotellerne godt nok). Det skal lige siges, at jeg ikke har prøvet det -
men skynd dig nu at ændre dine koder!!!

Når det er gjort, vil jeg måske se på andre login systemer der er kodet
og som ligger frit tilgængelig på nettet. F.eks. mit eget på lojmann.dk
eller nogle på hotscripts.com eller andre sites hvor du kan hente det ned.
Herved kan du nemt se hvilke tanker andre har gjort sig og høste de
erfaringer som du kan læse ud af deres kode...

En ting jeg ikke kan lide ved dit script er, at bare $accepted er 1 så
er man logget ind... dvs.
www.mitsite.dk/hemmeligfil.php?accepted=1&username=admin og så er jeg
logget ind som admin (hvis der er en user som hedder sådan)

Derfor ville jeg nok lave det lidt anderledens, f.eks. ved at verificer
username OG password (som man gemmer i session-variabler) hvergang der
skiftes til en side som kræver at man er logget ind.
Samtidig ville jeg (hvis nødvendigt) ikke bruge stringen "admin" om det
userlevel som f.eks .er admin (hvis du arbejder med det) men istedet en
nummerisk værdi, f.eks. 46214 - på den måde kan man ikke lave:
www.mitsite.dk/hemmeligfil.php?accepted=1&username=admin&userlevel=admin

Så tænk sådan på det, at hvis man vil snyde - så skal det ikke være så
nemt, som jeg viser ovenfor...

/Thomas

Alexander P. (09-12-2005)
Kommentar
Fra : Alexander P.


Dato : 09-12-05 14:47


> Et godt sted at starte apropos sikkerhed, er nok at lade være med at
> poste host, username og password til din database (som sikkert er samme
> for dit FTP login og noget mail admin - hvis jeg da kender billig
> hotellerne godt nok). Det skal lige siges, at jeg ikke har prøvet det -
> men skynd dig nu at ændre dine koder!!!
- Ja den dumme fejl bemærkede jeg hurtigt .. - btw. er det ikke muligt at
skifte kodeord på min host, så jeg måtte se min MySQL-database blive
slettet, der var intet vigtigt, så hvad faen,, så kan jeg lære det..


> Når det er gjort, vil jeg måske se på andre login systemer der er kodet
> og som ligger frit tilgængelig på nettet. F.eks. mit eget på lojmann.dk
> eller nogle på hotscripts.com eller andre sites hvor du kan hente det
ned.
> Herved kan du nemt se hvilke tanker andre har gjort sig og høste de
> erfaringer som du kan læse ud af deres kode...
- Har gjort dette lidt, men vil nu også komme lidt ud af fjerene og få en
masse kigget igennem :)


> En ting jeg ikke kan lide ved dit script er, at bare $accepted er 1 så
> er man logget ind.
- dette blev jeg også gjort opmærksom på tidligere, og dette er nu rettet,
så det hedder "noget-hemmeligt" istedet for acceptet, sådan noget
asdjaskwkw man ikke lige kan gætte :)

Tusind tak for dit svar :)

-/Ap

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Henrik Stidsen (09-12-2005)
Kommentar
Fra : Henrik Stidsen


Dato : 09-12-05 16:19

Alexander P. wrote :
> btw. er det ikke muligt at
> skifte kodeord på min host, så jeg måtte se min MySQL-database blive
> slettet, der var intet vigtigt, så hvad faen,, så kan jeg lære det..

Kan du ikke skifte kodeord ? så tror jeg bare du under alle
omstændigheder skal se dig om efter en anden udbyder...

--
Henrik Stidsen - http://henrikstidsen.dk/
This is not an automated signature. I type this in to the bottom of
every message.



Alexander P. (11-12-2005)
Kommentar
Fra : Alexander P.


Dato : 11-12-05 21:50


> Kan du ikke skifte kodeord ? så tror jeg bare du under alle
> omstændigheder skal se dig om efter en anden udbyder...

det kan du også tro at jeg gør - men det er jo 1go.dk - og man kan ikke
forvente så meget af gratis webhoteller - men forventer da også at få et
webhotel til jul eftersom der i alt kun er 4 ønsker så mulighederne er
store og hvis jeg ikke får så køber jeg da bare selv :)

-/Ap

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Thomas Løjmann Jørge~ (12-12-2005)
Kommentar
Fra : Thomas Løjmann Jørge~


Dato : 12-12-05 21:26

Alexander P. wrote:
> - Ja den dumme fejl bemærkede jeg hurtigt .. - btw. er det ikke muligt at
> skifte kodeord på min host, så jeg måtte se min MySQL-database blive
> slettet, der var intet vigtigt, så hvad faen,, så kan jeg lære det..
Det var ik så godt, træls at folk skal ødelægge det for andre.
Et web-hotel koster fra 9,- om måneden af så du skulle nok kunne finde
noget hvor du har mulighed for at skifte kodeord så tit du ønsker :)
Et tip, så du ikke gør det igen, lav en funktion og inkluder den via en
funktioner.php fil, f.eks. en funktion ala denne her:

function connect_general_mysql() {
   mysql_connect("SERVER","USERNAME","PASSWORD") or die(mysql_error());
   mysql_select_db("DATABASE") or die(mysql_error());
}

og så skriver du bare: connect_general_mysql();
hvergang du vil connecte. Husk at disconnect igen efter hvergang du har
snakket med din database og er færdig med det, det sker via
mysql_close(); (en pre deffineret php funktion).

Så er du fri for at se dit username/password blive postet på usenet
igen, hvis du en dag sidder og er lidt træt :)
>
> - Har gjort dette lidt, men vil nu også komme lidt ud af fjerene og få en
> masse kigget igennem :)
Jeg mener også der er skrevet små hæfter eller var det store bøger,
omkring login systemer i PHP... Jeg kan ikke huske det men har set det
tidligere. Måske der er lidt erfaring at hente der også :)
>
> - dette blev jeg også gjort opmærksom på tidligere, og dette er nu rettet,
> så det hedder "noget-hemmeligt" istedet for acceptet, sådan noget
> asdjaskwkw man ikke lige kan gætte :)
Men som en anden skriver, er det ikke en problem hvis register_globals
er sat til off (er den vidst som default)... Men det er godt at sikre
sig, alligevel mod den lille ting:)

> Tusind tak for dit svar :)
Anytime :)

/Thomas

Geert Lund (13-12-2005)
Kommentar
Fra : Geert Lund


Dato : 13-12-05 20:35

Thomas Løjmann Jørgensen wrote:

> hvergang du vil connecte. Husk at disconnect igen efter hvergang du har
> snakket med din database og er færdig med det, det sker via
> mysql_close(); (en pre deffineret php funktion).

Og hvad forventer du at opnå ved at bruge mysql_close()?

Den har så vidt jeg husker ikke være nødvendig andet end i helt
specielle tilfælde i mange mange år nu :)

http://dk2.php.net/mysql_close


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Thomas Løjmann Jørge~ (13-12-2005)
Kommentar
Fra : Thomas Løjmann Jørge~


Dato : 13-12-05 23:56

Geert Lund wrote:
> Og hvad forventer du at opnå ved at bruge mysql_close()?
>
> Den har så vidt jeg husker ikke være nødvendig andet end i helt
> specielle tilfælde i mange mange år nu :)
>
> http://dk2.php.net/mysql_close
>

Godt ord igen, blot en vane :)

/Thomas

Jesper H (09-12-2005)
Kommentar
Fra : Jesper H


Dato : 09-12-05 08:01

> En ting jeg ikke kan lide ved dit script er, at bare $accepted er 1 så
> er man logget ind... dvs.
> www.mitsite.dk/hemmeligfil.php?accepted=1&username=admin og så er jeg
> logget ind som admin (hvis der er en user som hedder sådan)

Vil dette ikke kun være et problem hvis register_globals er on? Ellers
kan man vel ikke sådan uden videre tilskrive variable inde i
scriptet...

--
Mvh Jesper, http://fdf.dk/landsdel1/


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste