Inlogprobleem of beter gezegd uitlogprobleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ed Jeurissen

Ed Jeurissen

04/05/2022 21:29:37
Quote Anchor link
Als ik met logout.php uitlog kan ik toch zo met userhome.php inloggen. Dat is niet de bedoeling. Wat doe ik niet goed?

Bijgaand: userhome.php
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?php
session_start();
?>


<!DOCTYPE html>
<html>
<head>
     <title>Opleidingen en Studie</title>
     <link rel="stylesheet" href="style.css">    
     <link rel="shortcut icon" type="image/ico" href="favicon.ico"/>
   </head>


<?php

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

    echo "<h1>Welcome ". $_SESSION["username"]."</h1>";
}

?>


<body>
    <nav>
        <ul>
           <li class="dropdown">
                    <a class="dropdown-btn" href="#">Fontys</a>
                    <div class="dropdown-menu">
                    <a href="fontys/prof1/domeinbeschrijvingen/domeinbeschrijvingen_hoofdstuk0.php">Leerjaar 1 - Domeinbeschrijvingen</a>
                        <a href="fontys/ISO.php">Leerjaar 1 - ISO</a>
                        <a href="fontys/BEE.php">Leerjaar 1 - BEE</a>
                        <a href="fontys/HDM.php">Leerjaar 1 - HDM/IBB</a>
                        <a href="fontys/Prof1.php">Leerjaar 1 - PROF 1</a>
                        <a href="fontys/SCM.php">Leerjaar 2 - SCM</a>
                        <a href="fontys/IWP.php">Leerjaar 2 - IWP</a>
                        <a href="fontys/BIS.php">Leerjaar 2 - BIS</a>
                        <a href="fontys/ITA.php">Leerjaar 2 - ITA</a>
                        <a href="fontys/PROG.php">Leerjaar 2 - PROG</a>
                        <a href="fontys/Prof2/prof2_start.php">Leerjaar 2 - PROF 2</a>
                        <a href="fontys/KTAF.php">Leerjaar 3 - KTAF</a>
                        <a href="fontys/IDI/IDI.php">Leerjaar 3 - IDI</a>
                        <a href="fontys/Prof3.php">Leerjaar 3 - PROF 3</a>
                        <a href="fontys/BIA.php">Leerjaar 4 - BIA</a>
                        <a href="fontys/EIM.php">Leerjaar 4 - EIM</a>
                        <a href="fontys/Prof4.php">Leerjaar 4 - PROF 4</a>
                        <a href="fontys/Afstuderen/Andere afstudeeropdracht/Andereafstudeeropdracht_hoofdstuk0.php">Leerjaar 4 - Andere afstudeeropdracht</a>
                        <a href="fontys/Afstuderen/Competent/Competent_hoofdstuk0.php">Leerjaar 4 - Competent afstuderen</a>
                    </div>
                </li>

                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Agrarische Hogeschool</a>
                    <div class="dropdown-menu">
                        <a href="HAS/glasgroenteteelt.php">Glasgroenteteelt</a>
                        <a href="HAS/glasbloementeelt.php">Glasbloementeelt</a>
                        <a href="HAS/potplantenteelt.php">Potplantenteelt</a>
                        <a href="HAS/boomteelt.php">Boomteelt</a>
                        <a href="HAS/plantenveredeling.php">Plantenveredeling</a>
                        <a href="HAS/Techniekenmotoren.php">Techniek en motoren</a>
                        <a href="HAS/techniekgeslotenteelten.php">Techniek gesloten teelten</a>
                        <a href="HAS/techniekopenteelten.php">Techniek open teelten</a>
                        <a href="HAS/bodemgeslotenteelten.php">Bodem gesloten teelten</a>
                        <a href="HAS/bodemopenteelten.php">Bodem open teelten</a>
                        <a href="HAS/exportmanagement.php">Exportmanagement</a>
                        <a href="HAS/marketing.php">Marketing</a>
                        <a href="HAS/Onderszoeksmethodieken.php">Onderszoeksmethodieken</a>
                        <a href="HAS/weefslkweek.php">Weefselkweek</a>
                        <a href="HAS/gewasbescherming.php">Gewasbescherming</a>
                        <a href="HAS/afstudeeropdracht.php">Afstudeeropdracht</a>
                        <a href="HAS/wiskunde.php">Wiskunde</a>
                        <a href="HAS/statistiek.php">Statistiek</a>
                        <a href="HAS/biomoleculen.php">Biomocleculen</a>
                        <a href="HAS/POR/h0.php">Proefonderzoek en rapportage</a>
                    </div>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Middelbare Tuinbouwschool</a>
                    <div class="dropdown-menu">
                        <a href="Mtus/groenteteelt.php">Groenteteelt</a>
                        <a href="Mtus/bloementeelt.php">Bloementeelt</a>
                        <a href="Mtus/bodemkunde.php">Bodemkunde</a>
                        <a href="Mtus/techniek.php">Techniek</a>
                        <a href="Mtus/arbeidskunde.php">Arbeidskunde</a>
                        <a href="Mtus/plantenkennis.php">Plantenkennis</a>
                        <a href="Mtus/natuurkunde/natuurkundeh0.php">Natuurkunde</a>
                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Biologische School</a>
                    <div class="dropdown-menu">
                        <a href="Bios/nederlands.php">Nederlands</a>
                        <a href="Bios/engels.html">Engels</a>
                        <a href="Bios/wiskunde.php">Wiskunde</a>
                        <a href="Bios/biologie.php">Biologie</a>
                        <a href="Bios/scheikunde.php">Scheikunde</a>
                        <a href="Bios/naturkunde.php">Natuurkunde</a>
                        <a href="Bios/plantaardig.php">Plantaardig</a>
                        <a href="Mtus/natuurkunde/natuurkundeh0.php">Natuurkunde</a>
                    </div>
                </li>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Nieuwland en GIS</a>
                    <div class="dropdown-menu">
                        <a href="GIS/Cartografie/cartografieh0.php">Cartografie</a>
                        <a href="#">Link 2</a>
                        <a href="#">Link 3</a>
                        <a href="#">Link 4</a>
                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Excel</a>
                    <div class="dropdown-menu">
                        <a href="Excel/Macros.php">Macro's 1</a>
                        <a href="Excel/Visualbasic.php">Macro's 2</a>
                        <a href="#">Link 3</a>
                        <a href="https://www.pdftoexcelonline.com/nl/">PDF naar Excel converteren</a>
                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Programmeren</a>
                    <div class="dropdown-menu">
                        <a href="#">C++ 1</a>
                        <a href="#">C++ 2</a>
                        <a href="Programmeren/Python/ProgrammeursleerlingH0.php">Python Programmeursleerling</a>
                        <a href="Programmeren/VB/VBH1.php">VB6</a>
                        <a href="Programmeren/R/RH0.php">R</a>
                        <a href="Programmeren/JavaScript/H1.php">JavaScipt</a>
                        <a href="#">Java</a>
                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Werk</a>
                    <div class="dropdown-menu">
                    <a href="Testen/Paragraaf1.1.php">Testen</a>
                    <a href="Requirments/Requirments_hoofdstuk0.php">Requirements</a>
                    <a href="Blueriq/bmf_sheet1en2.php">Blueriq - BMF</a>
                    </div>
                </li>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Kringloop</a>
                    <div class="dropdown-menu">
                    <a href="Andere/Verhage/Verhageh0.php">Marketing Verhage</a>
                    <a href="Andere/Mindmaps/Mindmapsh0.php">Mindmaps</a>
                    <a href="Andere/Boekhouden/h0.php">Boekhouden Geboekstaafd 2</a>
                    <a href="Andere/Informatieanalyse/h0.php">Informatieanalyse</a>
                    <a href="Andere/Prince/Princeh0.php">Prince 2</a>
                    <a href="Werk/UML/UMLh0.php">UML (RVO)</a>
                    <a href="Werk/Requirments/Requirments_Hoofdstuk0.php">Requirments (RVO)</a>
                    <a href="Werk/Testen/Inhoudsopgave.php">Testen (RVO)</a>
                    <a href="Werk/TMap/TmapexamenVoorbeeld1.php">TMap Samenvatting</a>
                    <a href="Andere/Onderzoek_De basis/h0.php">Onderzoek De Basis</a>
                    <a href="Andere/Hacken/h0.php">Hacken</a>
                    <a href="Andere/EleCommunicatie/h0.php">Elementaire Communicatie</a>
                    <a href="Andere/WatIsOnderzoek/h0.php">Wat Is Onderzoek?</a>
                    <a href="Andere/BeherenArchitectuur/d1h0.php">Beheren Onder Architectuur</a>

                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Open Universiteit</a>
                    <div class="dropdown-menu">
                    <a href="OU/H0.php">GIS Module beschrijving (inleiding)</a>
                    <a href="OU/InleidingInformatica/LE0a.php">Inleiding Informatica</a>
                    <a href="OU/RelationeleDatabases/LE0a.php">Relationele Databases</a>
                    <a href="OU/MDD/LE0a.php">Model Driven Development</a>

                    </div>
                </li>
                <li class="dropdown">
                    <a class="dropdown-btn" href="#">Logout</a>
                    <div class="dropdown-menu">
                        <a href="http://localhost:8080/website/login2.php">Logout</a>

                    </div>
                </li>
            </ul>
    </nav>
</head>
</html>


</body>
</html>


Login2.php
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
<?php

session_start();

$host = "localhost";
$user = "root";
$password ="usbw";
$db = "login";

$data = mysqli_connect($host, $user, $password, $db);

if($data==false)
{

    die ("Connection error");
}


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

    $username = $_POST["username"];
    $password = $_POST["password1"];

    $sql = "SELECT * FROM user WHERE username = '".$username."' AND  password1 = '".$password."'";
  
    $result = mysqli_query($data,$sql);


if( $result = mysqli_query($data,$sql) )
{

    $row = mysqli_fetch_array($result);
    if( $row["usertype"]=="user" )
    {

        $_SESSION["username"] = $username;
        header ("location:userhome.php");
    }


    elseif($row["usertype"]=="admin")
    {

        $_SESSION["username"] = $username;
        header ("location:adminhome.php");
    }

    else
    {
        echo "username or password incorrect";
    }
}
else
{
    echo "De query is niet gelukt: ".mysqli_error($data);
}
}


?>


Logout.php
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
<?php

session_start();

if(isset($_SESSION['username']))

{

    session_destroy();

    echo "<script>location.href='../userhome.php'</script>";

}

else
{

    echo "<script>location.href='../login2.php'</script>";
    
}


?>
Gewijzigd op 09/05/2022 11:07:41 door - Ariën -
 
PHP hulp

PHP hulp

18/04/2024 23:33:45
 
- Ariën  -
Beheerder

- Ariën -

04/05/2022 23:37:56
Quote Anchor link
Kan je code-tags gebruiken om je PHP-code heen, en deze even inkripten tot een acceptabel aantal regels.

- Verder zie ik een flinke SQL-injection.

- Verder klopt deze echo niet:
echo "username or password incorrect";

Die trigger je op een vreemd moment.

- Verder controleer je niet op userhome.php of de bewuste sessie bestaat. jan en alleman kunnen deze gewoon aanroepen.
Gewijzigd op 05/05/2022 00:44:55 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

05/05/2022 13:06:42
Quote Anchor link
Hoi Arien,

De site komt niet op het web te staan maar dat zak inderdaad nog beveiligd worden, Je andere 2 opmerkingen snap ik tot nog toe niet. Dat iedereen er in kan snap ik. Dat was ook de reden dat ik het vroeg. Hoe moet je userhome.php aanpassen dat het niet meer kan totdat je het goede wachtwoord en gebruikersnaam hebt ingevuld?

Groetjes
Ed
 
- Ariën  -
Beheerder

- Ariën -

05/05/2022 13:15:47
Quote Anchor link
Je moet goede logica hebben.

Allereerst moet je de juiste stappen maken bij de controle van het inloggen

- is er een gebruikersnaam wachtwoord ingevuld (controleren op lege velden)
- is de juiste gebruikersnaam en/of wachtwoord ingevuld (controleren in de database)

Als alles correct is, dan plaats je een sessie met bijv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$_SESSION['LoggedIn'] = 1;


Op userhome.php controleer je dus of die sessie bestaat!

De controles met: $row["usertype"]=="admin" zijn niet relevant bij het inloggen. Dit staat los van het inloggen en gebruik je enkel op plekken waar je wilt controleren. Bijvoorbeeld bij een link naar een adminpaneel.
Gewijzigd op 05/05/2022 13:17:00 door - Ariën -
 



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.