Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Wat is goed aan dit script en wat is fout?

Pagina: 1
Acties:
  • 350 views

Verwijderd

Topicstarter
Goedendag alle,

Al een tijd gebruik ik onderstaand script, voor verschillende websites. Maar deze heeft een aantal (grote) lekken, denk ik, qua veiligheid. Wat mijn niet lukt is: mysql_real_escape_string toevoegen aan de $_POST gedeeltes. Wanneer ik dat bijvoorbeeld doe bij 'gebruikersnaam' lijkt het wel alsof hij heel de gebruikersnaam niet ziet. Want ik krijg dan de melding, dat de gebruikersnaam niet ingevuld is.

Ik werk met sessions, alleen niet gebonden aan IP, is dit beter of juist niet?

Wat kan beter, wat doe ik verkeerd en wat doe ik juist wel goed? Graag suggesties.

PHP:
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
<?php
session_start();
$databaseid = $_SESSION['gebruikersid'];
$gebruikersnaam = $_SESSION['gebruikersnaam'];
if (!$gebruikersnaam && !$databaseid){
 
$form = "<div class='form'><form id='login' action='' method='post'>
                Gebruikersnaam:<br>
                <input type='text'  class='tekst' name='gebruikersnaam' /><br>
                Wachtwoord:<br>
                </span> <input type='password' class='tekst' name='wachtwoord' value='' /><br>
                <input class='submit_nieuw' type='submit' name='inloggen' value='go!'/><br>
            </form></div>";
    
    if ($_POST['inloggen']) {
        $gebruikersnaam = $_POST['gebruikersnaam'];
        $wachtwoord = $_POST['wachtwoord'];
 
        if ($gebruikersnaam) {
            if ($wachtwoord) {
            
                $wachtwoord = md5(md5("8skA9c" . $wachtwoord . "lAx098S")); 
    
                $query = mysql_query("SELECT * FROM admin WHERE gebruikersnaam='$gebruikersnaam'");
 
                $numrows = mysql_num_rows($query);
                if ($numrows == 1) {
                    $row = mysql_fetch_assoc($query);
                    $databaseid = $row['id'];
                    $databasegebruiker = $row['gebruikersnaam'];
                    $databasewachtwoord = $row['wachtwoord'];
                    
                    if ($wachtwoord == $databasewachtwoord){
 
                        $_SESSION['gebruikersid'] = $databaseid;
                        $_SESSION['gebruikersnaam'] = $databasegebruiker;
                        
                        echo "<meta http-equiv='Refresh' content='0; url=../../admin.php' />";
                        
                    }else
                        echo "De gegevens kloppen niet. $form";
                
                }else 
                    echo "De gegevens kloppen niet. $form";
                
                mysql_close();
                        
            }else
                echo "Je moet een wachtwoord opgeven. $form";
                    
                    }else
                        echo "Je moet een gebruikersnaam opgeven. $form";           
        }else {
        echo $form; 
}
 
}else{
header('location: ../../admin.php');
}
?>


Dank alvast.

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Twee keer md5 zonder nut. Het gebruiken van md5 voor crypto. Niet gebruiker+wachtwoord in een keer uit je database halen. SQL injectiegevoelig.

Kortom :) http://www.wikihow.com/Cr...n-Script-in-PHP-and-MySQL

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Logica en layout scheiden. Fatsoenlijk indenten. HTML in quirks mode. mysql_-functies zijn deprecated.

Maar bovenal is het niet de bedoeling dat je hier een compleet script dumpt en wij daar dan commentaar op gaan geven. Specifieke vragen willen we best voor je beantwoorden maar we zijn geen gratis testteam.
Niet alleen zonder nut, het maakt het zelfde onveiliger omdat je een stukje entropie kwijtraakt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.