Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:34 Der er 20 kommentarer og
2 løsninger

sikkerhed

Ja så er den her igen :).. Det var oppe på et tidspunkt hvordan man gjore sit login mere sikkert.. Svaret blev denne:
Krypt koden i md5 inden dataen sendes....
med denne kode:
<script language="JavaScript" type="text/javascript" src="md5.js"></script>

<form method="post" action="login.php" onSubmit="this.user.value = hex_md5(this.user.value); this.pass.value = hex_md5(this.pass.value); return true;">
<input type="Text" value="" name="user">
<input type="password" value="" name="pass">
<input type="submit" value="Login">
</form>

Det troede jeg på, indtil jeg tænkte over det.. DET IKKE SIKKERT hvis man opsnapper koden i md5 kan man stadig logge ind ved at gøre sådan:
lav sin ejen html side på ens computer med denne kode:
<form method="post" action="http:\\www.domine.dk\login.php">
<input type="Text" value="" name="user">
<input type="password" value="" name="pass">
<input type="submit" value="Login">
</form>

så kan du logge ind!!! Hvad kan man så gøre for at forhindre det ???
Avatar billede schaefner Juniormester
22. februar 2003 - 13:38 #1
hvorfor ikke bruge md5() på din login.php side?
Avatar billede Slettet bruger
22. februar 2003 - 13:38 #2
Du kan tjekke om den sider der sender til din login-form ligger på dit eget domæne. På den måde er det kun kode du selv har uploadet der kan eksekveres.
Avatar billede schaefner Juniormester
22. februar 2003 - 13:39 #3
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:39 #4
el_barto  --> hvordan? kan du ikke hjælpe med det?
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:40 #5
schaefner --> det ikke sikkert nok...
Avatar billede Slettet bruger
22. februar 2003 - 13:42 #6
$_SERVER['HTTP_REFERER'];

Denne indeholder en string med værdien af den URL der henviste til din side. Hvis denne ikke indeholder dit domæne, eller hvis den er tom betyder det en af to ting:

- Brugeren kom ikke fra dit domæne, men fra sin egen kode
- Brugeren tastede adressen direkte ind

Uanset hvad er det 2 ting du ikke bør tillade ved et login-system.
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:45 #7
så er det noget ligne:
if ($_SERVER['HTTP_REFERER'] = 'http:\\domine.dk/login.php') { indekode} else {ude kode}

Eller?
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:49 #8
<?php
$test = $_SERVER['HTTP_REFERER'];
echo $test;
if ($_SERVER['HTTP_REFERER'] = 'http:\\domine.dk/login.php') { echo "indekode";} else {echo "ude kode";}
?>

giver denne fejl:????
Notice: Undefined index: HTTP_REFERER in c:\inetpub\wwwroot\rasmus\login\login.php on line 2
indekode


den siger iinde kode.. det forkert :(
Avatar billede Slettet bruger
22. februar 2003 - 13:55 #9
Hvilken version af PHP har du?
Avatar billede Slettet bruger
22. februar 2003 - 13:56 #10
Hvis den er ældre end 4.0.1 skal du bruge $HTTP_SERVER_VARS['HTTP_REFERER']; i stedet...
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 13:59 #11
ved ikke hvad version jeg bruger.. nok en gammel :)..denne kode virker når man kommer fra det rigtige sted, hvis ikke kommer der fejl:
kode:
<?php
$test = $HTTP_SERVER_VARS['HTTP_REFERER'];
echo $test;
if ($HTTP_SERVER_VARS['HTTP_REFERER'] = "http:\\localhost\rasmus\login\index.php") { echo "indekode";} else {echo "ude kode";}
?>

fejl:
Notice: Undefined index: HTTP_REFERER in c:\inetpub\wwwroot\rasmus\login\login.php on line 2
indekode


??
Avatar billede Slettet bruger
22. februar 2003 - 14:08 #12
Hvis man har en del viden og hvordan en request til en server foregår er det dog muligt at ændre denne referer, så du skal ikke stole for meget på den.
Avatar billede Slettet bruger
22. februar 2003 - 14:08 #13
Du skal ændre dit = til ==
Avatar billede Slettet bruger
22. februar 2003 - 14:09 #14
Altså:
<?php
$test = $HTTP_SERVER_VARS['HTTP_REFERER'];
echo $test;
if ($HTTP_SERVER_VARS['HTTP_REFERER'] == "http:\\localhost\rasmus\login\index.php") { echo "indekode";} else {echo "ude kode";}
?>
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 14:12 #15
nu er fejlne:
Notice: Undefined index: HTTP_REFERER in c:\inetpub\wwwroot\rasmus\login\login.php on line 2

Notice: Undefined index: HTTP_REFERER in c:\inetpub\wwwroot\rasmus\login\login.php on line 4

?
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 14:35 #16
hallo? kan du hjælpe?
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 14:40 #17
koden er nu:
<?php
$test = $HTTP_SERVER_VARS['HTTP_REFERER'];
if ($test == "http://localhost\rasmus\login\index.php") {
$brugernavn = $_POST["user"];
$password = $_POST["pass"];
echo "brugernavn : " .$brugernavn ." password : " .$password;
} else {echo "ude kode";}
?>
fejlen er::Notice: Undefined index: HTTP_REFERER in c:\inetpub\wwwroot\rasmus\login\login.php on line 2
ude kode
Avatar billede taager-kongen Nybegynder
22. februar 2003 - 14:51 #18
kommer lige nogen flere points i! kom nu vil du ikke hjælpe?
Avatar billede swaxi Nybegynder
22. februar 2003 - 23:35 #19
fejlen er ikke en fejl ... det er en notice. du får den fordi $HTTP_REFERER ikke er sat, hvilket den ikke nødvendigvis er. u kan gøre een af to ting. enten ændrer du dit (paranoide) fejl-niveau. eller også laver du en if (isset($HTTP_SERVER_VARS['HTTP_REFERER'])) { ... } rundt om din kode
Avatar billede basicq Nybegynder
23. februar 2003 - 13:10 #20
Prøv med echo $_SERVER["SCRIPT_URI"]; den giver stien til det document du skriver det ud i.

Altså:
<?php
$test = $HTTP_SERVER_VARS["SCRIPT_URI"];
if ($test == "http://localhost\rasmus\login\index.php") {
$brugernavn = $_POST["user"];
$password = $_POST["pass"];
echo "brugernavn : " .$brugernavn ." password : " .$password;
} else {echo "ude kode";}
?>
Avatar billede basicq Nybegynder
23. februar 2003 - 13:16 #21
Jeg læste hvis ikke ? godt nok....
Avatar billede taager-kongen Nybegynder
23. februar 2003 - 18:59 #22
vriker ikke! help mig..
swaxi hvordan ændre jeg det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester