login script - verbeterpunten?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jordi Kroon
Redacteur

Jordi Kroon

14/12/2010 17:54:08
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php

   // start sessie
   session_start();
  
     // include config ( database connectie )
     Include 'includes/config.php';

// als de sessie al is aangemaakt

   if(isset($_SESSION['user']))
     {

      Echo "je bent al ingelogd";
     }


      if( $_SERVER['REQUEST_METHOD'] == 'POST' )
      {

        $query= "SELECT u_name, u_pass FROM SFI_users WHERE u_name='".mysql_real_escape_string($_POST['naam'])."'";

        $get = mysql_query($query);
        $aantal = mysql_num_rows($get);

              
            

          $login = mysql_fetch_assoc($get);


             if(md5($_POST['pass']) == $login["u_pass"] && strtolower($_POST['naam']) == $login["u_name"])
                {

                  $errors = 'U bent succesvol ingelogd!';
 
                         // Als er succesvol is ingelogd
                   $_SESSION['user'] = $_POST['naam'];
                   $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
                }
Else
                {
                  $errors = 'Uw inloggegevens zijn onjuist!';
                }

            
      }


?>



<html>


     <head>
     <style type="text/css">
      body {
      background-color:#9E99FF;
           }

           #centered
           {
           position: absolute;
           top: 50%; left: 50%; right: 50%; bottem: 50%;
           border-width: 1px; border-style: solid;
           border-color: #336699;
           background-color:#E8FFE2;
           width: 400px; height: 400px;
           margin: -200px 0 0 -200px;
           }
     </style>
  
        <title>SFI login panel</title>
     </head>
    
<body>

<div style="text-align: center; left: 666px; width: 307px; top: 297px; height: 183px;" id="centered"><big style="color: rgb(51, 51, 51);"><big style="font-family: Miriam;"><big><span style="color: rgb(51, 51, 51);"><span style="color: rgb(43, 233, 26);">L<span style="color: rgb(51, 51, 51);">ogin </span></span></span><span style="color: rgb(43, 233, 26);">P</span>anel  </big></big></big>
<span style="color: rgb(255, 18, 3);"><small><br><b>
<?php Echo $errors; ?>
</b></small></span>
<br><br><br>
<form action="" method="post"><span style="color: rgb(51, 51, 51); font-weight: bold;"><span style="color: rgb(43, 233, 26);">U</span>sername:</span>
  <input name="naam" type="text"> <br>
  <span style="color: rgb(43, 233, 26); font-weight: bold;">P</span><span style="color: rgb(51, 51, 51); font-weight: bold;">assword:</span>
  <input name="pass" type="password"><br>
  <input  value="Login" name="login" type="submit">
</form>
</div>
<br><br>
</body>
</html>


is dit script veilig?
en wat kan ik eraan verbeteren ?
ik ben bereid aantepassen wat ik kan verbeteren


note:
Echo "je bent al ingelogd";

hier komt nog doorlinking naar het user control panel
dus hier niet zo zeer op letten



kan er ook een verbetering in de layout?

note:
ik wil het login panel opzich simpel houden

Toevoeging op 14/12/2010 17:55:22:

voorbeeld : klik hier
Gewijzigd op 15/12/2010 15:20:44 door Jordi Kroon
 
PHP hulp

PHP hulp

03/03/2021 04:03:18
 
Vincent Huisman

Vincent Huisman

14/12/2010 18:01:02
Quote Anchor link
wat houd ="" in? het zit in je submit
 
Jordi Kroon
Redacteur

Jordi Kroon

14/12/2010 18:02:50
Quote Anchor link
oh eigenlijk niks was denk ik een foutje van mezelf
zal het er even uithalen
t verandert ook niks in de code

Toevoeging op 14/12/2010 18:06:53:

--done
 
Mitchel V

Mitchel V

14/12/2010 18:30:44
Quote Anchor link
- Het is natuurlijk netjes als je controleert of de verplichte velden wel zijn ingevult.

- Waarom md5 en geen SHA...

- bij je SQL geen * gebruiken maar precies zeggen wat je er uit wilt halen

waarom zet de IP in de sessie ip?
 
Jordi Kroon
Redacteur

Jordi Kroon

14/12/2010 18:35:53
Quote Anchor link
- Het is natuurlijk netjes als je controleert of de verplichte velden wel zijn ingevult.

waarom doe ik dit niet:

op veel websites doen ze dit niet heb ik gezien
mensen moeten toch inloggen en het klopt ook dat als ze niks invullen de gebruikersnaam niet bestaat of dat het wachtwoord niet bestaat


over de wildcard zal ik even veranderen


Toevoeging op 14/12/2010 18:49:18:

-- done
 
Marvin H

Marvin H

14/12/2010 19:09:53
Quote Anchor link
Misschien een tip, geef hackers zo min mogelijk informatie... dus bij verkeerde gebruikersnaam/wachtwoord... hou het gewoon algemeen zoals "Gebruikersnaam en/of wachtwoord niet juist". in plaats van "wachtwoord niet goed", hierin geef je dan namelijk aan dat de username wel goed is...
 
Vincent Huisman

Vincent Huisman

14/12/2010 19:12:41
 

14/12/2010 19:21:43
Quote Anchor link
Marvin Houweling op 14/12/2010 19:09:53:
Misschien een tip, geef hackers zo min mogelijk informatie... dus bij verkeerde gebruikersnaam/wachtwoord... hou het gewoon algemeen zoals "Gebruikersnaam en/of wachtwoord niet juist". in plaats van "wachtwoord niet goed", hierin geef je dan namelijk aan dat de username wel goed is...


Oftewel: Check niet of een gebruikersnaam bestaat, maar dump gewoon de gebruikersnaam en password + salt in query en kijk of er iets uit komt.
 
Jordi Kroon
Redacteur

Jordi Kroon

14/12/2010 19:22:49
Quote Anchor link
je moet dan wel even die andere ook op detect automatically zetten

die is nu opgelost:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.sficlan.com%2Ftest%2Flogin.php&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.1

@marvin zou het even aanpassen dankjewel
 
Wouter J

Wouter J

14/12/2010 19:30:44
Quote Anchor link
Ik zal regel 76 wel even aanpassen. Als er namelijk geen fouten zijn gaat php zeuren over een onbekende variabele je kan beter dit gebruiken, of in het begin van je php $errors een lege string meegeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if(isset($errors)) echo $errors; ?>
 
Jordi Kroon
Redacteur

Jordi Kroon

14/12/2010 19:37:19
Quote Anchor link
@karl karl heb het nu even aangepast zou nu beter moeten zijn

@ wouter als je goed had gekeken zag je dat ik deze erook bij had gedaan

$errors = 'U bent succesvol ingelogd!';

omdat er altijd maar 1 error maximaal is dacht ik van doe ik het ook maar even zo
voor gemak

Toevoeging op 14/12/2010 20:48:23:

Ik zit nu met een klein probleempje

Het is niet super maar wel voor gebruikersgemak

Als je nu inlogd zijn de loginnamen hoofdletter gevoelig
Hoe moet ik dit dan doen

Toevoeging op 15/12/2010 08:40:20:

Zou iemand Dit weten
 
- Ariën -
Beheerder

- Ariën -

15/12/2010 08:47:21
Quote Anchor link
je kan strotolower() gebruiken
 
Jordi Kroon
Redacteur

Jordi Kroon

15/12/2010 14:57:20
Quote Anchor link
-- done

heb dit veranderd:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(md5($_POST['pass']) == $login->u_pass && $_POST['naam'] == $login->u_name)
?>


in dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(md5($_POST['pass']) == $login->u_pass && strtolower($_POST['naam']) == $login->u_name)
?>



Toevoeging op 15/12/2010 15:08:23:

heeft iemand nog tips?


Toevoeging op 15/12/2010 15:20:30:

update: ik heb er nog even mysql_fetch_assoc van gemaakt
Gewijzigd op 15/12/2010 14:57:58 door Jordi Kroon
 
PHP Scripter

PHP Scripter

15/12/2010 16:18:16
Quote Anchor link
Persoonlijke zou ik het PHP gedeelte zo hebben gedaan. Ik houdt van overzichtelijkheid en ordening.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();  
include 'includes/config.php';

if ( isset ( $_SESSION["user"] ) )
{

    echo "Je bent al ingelogd!";
}

else if ( $_SERVER["REQUEST_METHOD"] == "POST" )
{

    $sql = "SELECT u_name, u_pass FROM SFI_users WHERE u_name = '" . mysql_real_escape_string ( $_POST["naam"] ) . "'";
    $query = mysql_query ( $sql );
    $row = mysql_fetch_assoc ( $query );

    if ( mysql_num_rows ( $get ) > 0 AND md5 ( $_POST["pass"] ) == $row->u_pass AND strtolower ( $_POST['naam'] ) == $row->u_name)
    {

        $errors = 'Je bent succesvol ingelogd!';
        
        $_SESSION["user"] = $_POST["naam"];
        $_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
    }

    else
    {
        $errors = 'Jouw inloggegevens zijn onjuist!';
    }
}

?>
 
Jordi Kroon
Redacteur

Jordi Kroon

15/12/2010 16:30:34
Quote Anchor link
jij bent mysql_fetch_object gewend dat werkt niet met assoc
dan moet je ipv $row->u_pass , $row["u_pass"] doen
 
PHP Scripter

PHP Scripter

15/12/2010 16:33:01
Quote Anchor link
Dat werkt bij mij prima ;)
 
Jordi Kroon
Redacteur

Jordi Kroon

15/12/2010 17:57:37
Quote Anchor link
zou kunnen maar zo hoort het eigenlijk niet
 
Anny php

anny php

17/12/2010 09:03:37
Quote Anchor link
Spam..[/modedit]
Gewijzigd op 17/12/2010 10:46:40 door Chris -
 
Bas Cost Budde

Bas Cost Budde

17/12/2010 10:43:53
Quote Anchor link
Antwoord van anny php ziet er voor mij uit als spam.
 
Jordi Kroon
Redacteur

Jordi Kroon

17/12/2010 14:11:29
Quote Anchor link
zijn er nog tips?

Toevoeging op 17/12/2010 14:11:43:

of verbeterpuntjes
 
Kevin de Groot

Kevin de Groot

17/12/2010 14:34:06
Quote Anchor link
Het is al genoemd en ik weet ook niet of het er al in verwerkt is maar; ik zou sowieso voor sha1() gaan in plaats van md5().
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.