Site review inlogsysteem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Frontend Developer Vue Nuxt HBO Javascript

Samengevat: Deze werkgever levert elke dag betere digitale gebruikerservaringen. Ben jij geschikt als frontend Developer? Heb je ervaring met Vue en Nuxt? Vaste baan: Front-End Developer HBO €3.100 - €4.600 Zij bieden opdrachtgevers een complete dienstverlening op gebied van ontwerpen en ontwikkelen van websites, zoekmachine optimalisatie, online adverteren, content marketing en conversie verbetering. Zij werken met een eigen ontwikkeld CMS. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Ervaren Full-Stack PHP Developer

Functieomschrijving Gezocht! Ervaren PHP Developer! Voor een organisatie in de regio Harderwijk zoeken wij een ervaren PHP Developer die het IT team van dit bedrijf gaat versterken. We zijn op zoek naar een enthousiaste en breed georiënteerde IT-er die het innovatieve bedrijf nog een stap verder kan brengen. Voor deze functie zoeken wij iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je werkt samen met een externe ontwikkelpartij en kunt hun dus uitdagen op het geleverde werk. Het schrijven van concepten aan de AI en hardware kant valt onder je verantwoordelijkheden. Het bedrijf noemt zichzelf een

Bekijk vacature »

C#.NET Developer

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

Bekijk vacature »
Anne

Anne

09/09/2008 18:26:00
Quote Anchor link
Beste Allemaal,

Ik heb geprobeerd met behulp van het inlogscript van iChris een mooi CMS te maken. Het is vooral belangrijk dat het 99,9% veilig is, en dat accounts dus niet kunnen worden gehackt.
Aangezien ik geen online werkend voorbeeld heb, post ik hieronder de 3 belangrijkste pagina's: Aanmelden.php, inloggen.php en beheer.php (de pagina die beveiligd is)

Aanmelden.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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
<?php
/****
    * Simpel inlog systeem V1
    *
    * Gemaakt door Chris "iChris.nl" Horeweg
    * Lees de leesmij op www.iChris.nl/simpel-inlog-systeem/
****/


echo '<h2>Aanmelden</h2>';

// We gaan eerst kijken of het formulier al is ge"submit", zo ja, gaan we het eens goed bekijken
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // Eerst gaan we kijken of de gebruiker wel alles heeft ingevuld. Vergeet niet, dat als je het formulier
    // bewerkt of uitbreid, je dat veld hier ook nog in moet doen!

    if(
        empty($_POST['gebruikersnaam']) ||
        empty($_POST['wachtwoord']) ||
        empty($_POST['wachtwoord_herhalen']) ||
        empty($_POST['email']) ||
        empty($_POST['email_herhalen'])
    ){

        echo '
        Je moet natuurlijk wel alles invullen!
        <form method="post" action="">
        <table>
            <tr>
                <td width="150px">Gebruikersnaam:</td>
                <td width="250px"><input type"text" name="gebruikersnaam" value="'
.$_POST['gebruikersnaam'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td><input type="password" name="wachtwoord" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord herhalen:</td>
                <td><input type="password" name="wachtwoord_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres:</td>
                <td><input type="text" name="email" value="'
.$_POST['email'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres herhalen:</td>
                <td><input type="text" name="email_herhalen" value="'
.$_POST['email_herhalen'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="aanmelden" value="Aanmelden" style="width:150px;" /></td>
            </tr>
        </table>
    </form>'
;
    }

    // De wachtwoorden moeten natuurlijk wel gelijk zijn...
    else
    if($_POST['wachtwoord'] != $_POST['wachtwoord_herhalen'])
    {

    echo '
        De wachtwoorden zijn niet gelijk!
        <form method="post" action="">
        <table>
            <tr>
                <td width="150px">Gebruikersnaam:</td>
                <td width="250px"><input type"text" name="gebruikersnaam" value="'
.$_POST['gebruikersnaam'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td><input type="password" name="wachtwoord" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord herhalen:</td>
                <td><input type="password" name="wachtwoord_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres:</td>
                <td><input type="text" name="email" value="'
.$_POST['email'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres herhalen:</td>
                <td><input type="text" name="email_herhalen" value="'
.$_POST['email_herhalen'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="aanmelden" value="Aanmelden" style="width:150px;" /></td>
            </tr>
        </table>
    </form>'
;
    }

    // Ook de e-mail adressen moeten gelijk zijn...
    else
    if($_POST['email'] != $_POST['email_herhalen'])
    {

    echo '
        De e-mail adressen zijn niet gelijk!
        <form method="post" action="">
        <table>
            <tr>
                <td width="150px">Gebruikersnaam:</td>
                <td width="250px"><input type"text" name="gebruikersnaam" value="'
.$_POST['gebruikersnaam'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td><input type="password" name="wachtwoord" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord herhalen:</td>
                <td><input type="password" name="wachtwoord_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres:</td>
                <td><input type="text" name="email" value="'
.$_POST['email'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres herhalen:</td>
                <td><input type="text" name="email_herhalen" value="'
.$_POST['email_herhalen'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="aanmelden" value="Aanmelden" style="width:150px;" /></td>
            </tr>
        </table>
    </form>'
;
    }

    // We gaan toch ook nog maar even kijken of de opgegeven gegevens niet al bestaan in de database!
    else
    if(mysql_num_rows(mysql_query("
                                    SELECT
                                        id
                                    FROM
                                        gebruikers
                                    WHERE
                                        gebruikersnaam = '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."'
                                    OR
                                        email = '"
.mysql_real_escape_string($_POST['email'])."'
                                    "
)))
    {

    echo '
        De opgegeven gebruikersnaam of email adres is bij ons al bekend!
        <form method="post" action="">
        <table>
            <tr>
                <td width="150px">Gebruikersnaam:</td>
                <td width="250px"><input type"text" name="gebruikersnaam" value="'
.$_POST['gebruikersnaam'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td><input type="password" name="wachtwoord" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord herhalen:</td>
                <td><input type="password" name="wachtwoord_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres:</td>
                <td><input type="text" name="email" value="'
.$_POST['email'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres herhalen:</td>
                <td><input type="text" name="email_herhalen" value="'
.$_POST['email_herhalen'].'" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="aanmelden" value="Aanmelden" style="width:150px;" /></td>
            </tr>
        </table>
    </form>'
;
    }

    // Het lijkt erop dat alles klopt!
    // Vergeet niet om hier je extra checks toe te voegen..
    // Klopt het e-mail adres wel, een bepaalde lengte voor gebruikersnaam, email en wachtwoord...
    // Dit zijn dingen die je zelf kunt toevoegen, zodat je hier ook nog van leert!
    // Trouwens nog een korte tip, je kan op dezelfde manier als hierboven ook nog een extra
    // check kunnen uitvoeren of de gebruiker al een account heeft op dit IP adres!

    else
    {
        // Om het een beetje te beveiligen, halen we alles door "mysql_real_escape_string"
        foreach($_POST as $naam => $waarde)
        {

            $_POST[$naam] = mysql_real_escape_string($waarde);
        }


        // Zo, nu gaan we alles in de database zetten.
        // Let erop dat als jij extra velden heb neergezet in je form, je deze ook in je
        // database moet hebben staan, en je ze ook hieronder erbij zet.
        // Je zou als toevoeging nog een bevestigingsmail kunnen toevoegen. Wellicht
        // dat als er vraag naar is, ik dit in een volgende versie erbij zet.
        // Het is niet moeilijk om dit zelf toe te voegen, kijk daarvoor op de website
        // die je helemaal van boven ziet!


        $query = @mysql_query("
                            INSERT INTO
                                gebruikers (
                                    gebruikersnaam,
                                    wachtwoord,
                                    email,
                                    ip
                                )
                            VALUES (
                                    '"
.$_POST['gebruikersnaam']."',
                                    '"
.md5($_POST['wachtwoord'])."',
                                    '"
.$_POST['email']."',
                                    '"
.$_SERVER['REMOTE_ADDR']."'
                            )"
);
        if(!$query)
        {

            // Er is iets verkeerds gegaan met de query, we moeten dat wel laten weten!
            echo 'Aanmelden is niet voltooid! <br /><br />'.mysql_error();
            exit;
        }

        else
        {
            // Alles is achter de rug, de gebruiker is nu geregistreerd.
            // Vergeet niet dat als je een activatie link erin heb gebakken,
            // je dit bericht moet aanpassen, en natuurlijk een email moet
            // versturen! Anders kan de bezoeker zich nooit inloggen...

            echo 'Aanmelden voltooid! U kunt nu inloggen.';
        }
    }
}

// Als het nog niet is gesubmit, laten we een form zien!
else
{
    echo '
    <form method="post" action="">
        <table>
            <tr>
                <td width="150px">Gebruikersnaam:</td>
                <td width="250px"><input type"text" name="gebruikersnaam" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td><input type="password" name="wachtwoord" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Wachtwoord herhalen:</td>
                <td><input type="password" name="wachtwoord_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres:</td>
                <td><input type="text" name="email" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>Email adres herhalen:</td>
                <td><input type="text" name="email_herhalen" value="" style="width:150px;" /></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="aanmelden" value="Aanmelden" style="width:150px;" /></td>
            </tr>
        </table>
    </form>'
;
}

?>



Inloggen.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
<html>

<body onLoad="autoChange()">
<?php

// Als het formulier is gesubmit, gaan we het verwerken
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // Eerste wat we gaan checken, is of alles wel is ingevuld
    if(
        empty($_POST['gebruikersnaam']) ||
        empty($_POST['wachtwoord'])
    )
    {

        echo '


<form method="post" action="">


<table border="0"  width="100%" height="100%">
  <tr>
     <td valign="middle" align="center">


<table border="0" cellpadding="0" cellspacing="0" height="113">
  <tr>
       <td width="230" background="./images/CMS_login.jpg" align="center">
     <input type="text" name="gebruikersnaam" value="Naam">
     <input type="password" name="wachtwoord" value="Wachtwoord">
     </td>
     <td background="./images/CMS_loginbutton2.jpg" style="border: 0px;" width="97" valign="middle" align="center">
     <input type="submit" style="border: 0px; width: 58px; height: 63px; background-image: url(./images/CMS_loginbutton.jpg);"  name="submit" value="">
     </td>
  </tr>
</table>
'
;
        
        
        
        
        
    }

    // Je zou er goed aan doen om nog een extra check hier neer te zetten, of de gebruikersnaam/wachtwoord wel minstens X aantal
    // tekens bevat..

    else
    {
        // We gaan een query opstellen, met daarin de gegevens die net zijn ingevuld
        $query = @mysql_query("
                            SELECT
                                id
                            FROM
                                gebruikers
                            WHERE
                                gebruikersnaam = '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."'
                            AND
                                wachtwoord = '"
.md5($_POST['wachtwoord'])."'
                            "
);
        // Als de query is mislukt, laten we dat zien
        if(!$query)
        {

            echo 'Er is een fout opgetreden!<br />'.mysql_error();
            exit;
        }

        // Als de query kan worden gemaakt, gaan we kijken of de gebruiker bestaat
        else
        if(!mysql_num_rows($query))
        {

            // Zet hier iets van een melding of de gebruiker zich al eens heeft geregistreerd oid..
            // Of maak een extra pagina: wachtwoord vergeten! Meer info is te vinden op de link bovenaan!

            echo 'Deze combinatie is niet bekend!';
        }

        else
        {
            // Zo, de gegevens van de gebruiker kloppen, laten we hem nu maar inloggen!
            // Om het allemaal zo veilig mogelijk te maken, gaan we 2 dingen doen.
            // We maken een unieke cijferreeks van 40 aan, en zetten die (samen met het ip) in de
            // database. De cijferreeks zetten we in een sessie, zodat we die kunnen vergelijken!
            // Als je wilt weten hoe die cijferreeks wordt gemaakt, moet je even kijken in de
            // functie pagina..

            $cijferreeks = cijferReeks();
            $_SESSION['sig'] = $cijferreeks;
            $query = mysql_query("
                                UPDATE
                                    gebruikers
                                SET
                                       ip = '"
.$_SERVER['REMOTE_ADDR']."',
                                    hash = '"
.$cijferreeks."'
                                WHERE
                                    gebruikersnaam = '"
.$_POST['gebruikersnaam']."'
                                AND
                                    wachtwoord = '"
.md5($_POST['wachtwoord'])."'
                                "
);
            // Als de query is mislukt, laten we het zien
            if(!$query)
            {

                echo 'Er is een fout opgetreden!<br />'.mysql_error();
                exit;
            }

            else
            {
            ?>

U bent succesvol ingelogd. Klik <a href="/klant/?pagina=index" target="_top">hier</a> om verder te gaan.            
<script>
<!--
function autoChange()
{
var timeID = setTimeout("location.href= '/klant/?pagina=index'", 1)
}
//-->
</script>
            <?php

            }
        }
    }
}

else
{
    // Je moet natuurlijk wel eerst een formulier invullen voordat we verder kunnen gaan..
?>


<form method="post" action="">


<table border="0"  width="100%" height="100%">
  <tr>
     <td valign="middle" align="center">


<table border="0" cellpadding="0" cellspacing="0" height="113">
  <tr>
       <td width="230" background="/images/CMS_login.jpg" align="center">
     <input type="text" name="gebruikersnaam" value="Naam" onclick="this.value=''" onblur="this.value==''?this.value='Naam':''">
     <input type="password" name="wachtwoord" value="Wachtwoord" onclick="this.value=''" onblur="this.value==''?this.value='Wachtwoord':''">
     </td>
     <td background="/images/CMS_loginbutton2.jpg" style="border: 0px;" width="97" valign="middle" align="center">
     <input type="submit" style="border: 0px; width: 58px; height: 63px; background-image: url(/images/CMS_loginbutton.jpg);"  name="submit" value="">
     </td>
  </tr>
</table>

</form>




</td>
  </tr>
</table>

<?php
}
?>
</body>
</html>






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

// Met deze functie kijken we of de gebruiker is ingelogd
if(userCheck())
{

$bestand = './' . htmlentities ($_GET['bestand']);
list($map, $file, $niets) = explode("/", $_GET['bestand']);

$query = @mysql_query("
                        SELECT
                            id, gebruikersnaam, email
                        FROM
                            gebruikers
                        WHERE
                            hash = '"
.$_SESSION['sig']."'
                        AND
                            ip = '"
.$_SERVER['REMOTE_ADDR']."'
                                
                        LIMIT 1"
);
    // Als er iets is misgegaan, laten we dat zien
    if(!$query)
    {

        echo 'Er is een fout opgetreden!<br />'.mysql_error();
        exit;
    }

    else
    {
        // Met $lijst['veldnaam'] kun je gegevens ophalen, zie hieronder!
        while($lijst = @mysql_fetch_array($query))
            
if($map != $lijst['gebruikersnaam'])
   {

   exit('U heeft geen rechten om deze pagina te bewerken.');
   }


if(preg_match('_\.\./_', $_GET['bestand'])) {
                echo "Deze pagina mag niet worden bekeken.";
            }
else {

                  if(is_readable($bestand) == FALSE) {
                      die("Kon bestand niet openen: bestand is niet leesbaar");
                  }


                  if(is_writable($bestand) == FALSE) {
                      die("Kon bestand niet openen: bestand is niet schrijfbaar");
                  }


                  if(isset($_POST["inhoud"]) == TRUE) {
                      $inhoud = $_POST["inhoud"];
                    $handeling = fopen($bestand,"w") or die("Kon bestand niet openen om te schrijven");
                      $schrijf = fwrite($handeling,stripslashes($inhoud)) or die("Kon niet naar bestand schrijven");
                      echo "<b>Het bestand is succesvol bewerkt.</b><br><br>Klik <a href=\"?pagina=extra\">hier</a> om terug te gaan naar het overzicht.";
                      die();
                  }


                $inhoud = file_get_contents($bestand) or die("Kon bestand niet openen om uit te lezen");

                echo '    <html>
                        <head>
                        <title>Bestand editten</title>
                        <link href="sample.css" rel="stylesheet" type="text/css" />
                        <script type="fckeditor.js"></script>
                        </head>

                        <style>
                        .update {
                        background-color: #ffffff;
                        color: #EE3034;
                        border: 1px solid #999999;
                        font-family: Arial;
                        font-size: 12px;
                        }
                        </style>
                        <body bgcolor="#ffffff">
                '
;
                
                include("fckeditor.php");?>

                
                 <form action="<?php $_POST["PHP_SELF"]?>" method="post">

                 <?php
                $sBasePath
= $_SERVER['PHP_SELF'] ;
                $sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;

                $oFCKeditor = new FCKeditor('inhoud') ;
                $oFCKeditor->BasePath    = $sBasePath ;
                $oFCKeditor->Height        = 600 ;
                $oFCKeditor->Value        = $inhoud ;
                $oFCKeditor->Create() ;

                echo '    <input type="submit" class="update" value="Update pagina >>">
                        </form>
                        </body>
                        </html>'
;
            
                        
}
}
}

else
{
    // De gebruiker is niet ingelogd, en mag dus niets zien
    echo 'Deze pagina is alleen te bekijken wanneer u bent ingelogd. Klik <a href="?pagina=inloggen" target="_top">hier</a> om in te loggen.';
}

?>


Wat ik kon bedenken is het wachtwoord met md5 op te slaan, en te kijken naar Mysql injection.

Graag hoor ik van jullie wat nog voor verbetering vatbaar is.

Groetjes,

Anne
 
PHP hulp

PHP hulp

12/01/2025 00:55:49
 
Bart van der veen

bart van der veen

09/09/2008 19:11:00
Quote Anchor link
heb je ergens een werkend voorbeeld waar we ons op kunnen uitleven
 
Hans

hans

09/09/2008 19:17:00
Quote Anchor link
bart van der veen schreef op 09.09.2008 19:11:
heb je ergens een werkend voorbeeld waar we ons op kunnen uitleven

http://www.ichris.nl/simpel-inlog-systeem/?pagina=inloggen
Daar staat het wel op!
 
- -

- -

09/09/2008 19:18:00
Quote Anchor link
Bart, lees even de beginpost :)

MySQL injectie op een wachtwoord is niet mogelijk als je deze MD5't, en vanwege mysql_real_escape_string is de gebruikersnaam beveiligd.

Je zou qua veiligheid van het systeem de hashwaarde kunnen uitbreiden, een MD5 kunnen maken van gebruikersnaam, ip en een random waarde. Deze in de sessie en database stoppen, werkt in princiepe hetzelfde als de huidige..
 
Anne

Anne

09/09/2008 19:48:00
Quote Anchor link
Hartelijk dank voor de reacties.
Wat het MD5'en van gebruikersnaam, ip, enz. betreft: ik zal ook veel gebruikers moeten verwijderen via phpmyadmin, dus dan is het niet zo makkelijk als het versleuteld staat.

Wat jullie betreft is dit script dus redelijk veilig, en kan ik dit gebruiken voor een CMS waarbij mensen hun pagina kunnen aanpassen?
Het mag dus absoluut niet zo zijn dat een account gehackt kan worden, dan zijn de gevolgen niet te overzien...

En iChris, heel hartelijk dank voor het schrijven van dit prachtige "basisscript"!!
 
- -

- -

09/09/2008 19:54:00
Quote Anchor link
Niets is 100% dicht :)

Geen probleem, het is niet volledig, en er zijn genoeg dingen die er anders kunnen. Maar, zoals eigenlijk overal staat, het is een beginsel en de gebruiker dient zelf dit script uit te breiden en veiliger maken ^_^
 



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.