loginscript (veilig?)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Fullstack developer

Functie omschrijving We are looking for a dutch native speaker Wil jij werken als Senior Developer en werken aan een applicatie die duizenden marketingcampagnes automatisch aanstuurt? Dit is je kans! Kom werken voor onze opdrachtgever en in deze rol zul je veel vrijheid en verantwoordelijkheid krijgen om gezamenlijk de applicatie naar een hoger plan te tillen. Wat ga je verder doen: Optimaliseren, beheren en uitbreiden van onze applicatie; Het bouwen van aansluitingen op de systemen van partners middels API’s; Meedenken over de technische/ontwikkel-standaarden; Proactief verbeterpunten voorstellen. Bedrijfsprofiel Het is een organisatie die met een team van verschillende developers én marketeers

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Full Stack PHP Developer

Functieomschrijving Ervaren PHP Developer gezocht! Wij zijn op zoek naar een ervaren PHP Developer die het IT team van een organisatie in de regio Ermelo gaat versterken. Voor deze functie zijn we op zoek naar een enthousiaste en breed georiënteerde IT-er die deze innovatieve organisatie nog een stap verder gaat brengen. Wij zijn op zoek naar iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je bent verantwoordelijk voor het samenwerken met een externe partij het is hierbij jouw taak om deze partij uit te dagen op het geleverde werk. Het schrijven van concepten aan de AI

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »
Wouter OOP

Wouter OOP

07/05/2009 19:09:00
Quote Anchor link
Hallo allemaal, ik ben nieuw met php en mysql en ben een maand of 2 geleden begonnen met het leren ervan.
Nou heb ik een tutorial gevolgd om een loginscript te maken, nou vroeg ik me af of het misschien nog beter beveiligd moet worden.

Het zijn de volgende files:

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

$inlognaam
= $_POST['inlognaam'];
$wachtwoord = $_POST['wachtwoord'];

if ($inlognaam&&$wachtwoord)
{

$connect = mysql_connect ("localhost","root","") or die ("Kan niet verbinden");
mysql_select_db ("test") or die ("Kan db niet vinden");

$inlognaam  = stripslashes($inlognaam);
$wachtwoord = stripslashes($wachtwoord);
$inlognaam  = mysql_real_escape_string($inlognaam);
$wachtwoord = mysql_real_escape_string($wachtwoord);

$query = mysql_query ("SELECT * FROM leden WHERE inlognaam='$inlognaam' AND wachtwoord='$wachtwoord'");

$numrows = mysql_num_rows ($query);

if ($numrows !=0)
{

session_register("inlognaam");
session_register("wachtwoord");
header("location:login_success.php");
}

else
    die ("Inlognaam / Wachtwoord klopt niet!");
}

else
    echo "Vul inlognaam en wachtwoord in!";

?>


login_succes.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

session_start();

if(!session_is_registered("inlognaam")){
header("location:login_form.php");
}


?>


<html>

<body>
Ingelogd!<br/>
<a href=logout.php>Log out!</a>
</body>

</html>


Bedankt,

Wouter
 
PHP hulp

PHP hulp

20/04/2024 10:46:18
 
Mark PHP

Mark PHP

07/05/2009 19:21:00
Quote Anchor link
Een aantal punten die me direct opvallen:
- wachtwoord ongecodeerd in database, gebruik hash(),
- onnodige stripslashes,
- foutafhandeling ontbreekt,
- session_register en session_is_registered zijn verouderd, gebruik $_SESSION,
- de laatste regels van login_check.php kloppen niet: dubbele else.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Emmanuel Delay

Emmanuel Delay

07/05/2009 19:21:00
Quote Anchor link
Nee, dit is een slecht idee. (EDIT: ik spreek uiteraard niet over de post boven mij.)

Eerst en vooral: je slaat je wachtwoorden zomaar op, niet gecodeerd. Leuk. Zo kan je de paswoorden van iedereen zomaar in de db zien.

paswoorden zet je ook nooit in een sessie.
Het paswoord heb je enkel nodig op het moment van het inloggen. Daarna laat je dat paswoord gerust.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Afra ca

Afra ca

07/05/2009 19:40:00
Quote Anchor link
Agirre heeft gedeeltelijk gelijk over de dubbele else.

Als je goed zou inspringen zul je zien dat de eerste else nog van een if statement in de if statement komt. Desondanks klopt hij niet omdat je bij de 1-na-laatste else de brackets ( "{" en "}" ) vergeet!

edit:

* onnodig variabelen gaan definieren, je kan prima werken met post variabelen, en de stripslashes kun je tegelijk in de query toepassen.

* variabelen buiten quotes halen (bijv. in query)

* Mocht hash() je als beginner wat lastig lijken, kan je ook prima werken met md5($_POST['wachtwoord']) , alleen wees je ervan bewust dat er tegenwoordig databases worden bijgehouden met bekende md5 wachtwoorden, dus overweeg sha1 (iets minder bekend, maar ook daar als DB's voor), of dus gewoon wel de hash() functie

edit 2:

* Je moet zelf even wat onderzoek doen naar de goede combinatie van stripslashes & mysql_real_escape_string (ivm. magic quotes die soms aan en soms uit staan)
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Mr.Ark

Mr.Ark

07/05/2009 20:02:00
Quote Anchor link
Even snel je code herschreven, Zoals eerder gezegd, Sla je wachtwoord als MD5 op. Zorg ook dat je sql injection tegen gaat, En dat je goeie checks uitvoert.

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
<?PHP
/* Inlognaam check */
if(isset($_POST['inlognaam'] && !empty($_POST['inlognaam']))
{

    /* Wachtwoord check */
    if(isset($_POST['wachtwoord'] && !empty($_POST['wachtwoord']))
    {

        /* Query uitvoeren */
        $Query =
        "
            SELECT
                ID
            FROM
                tabel
            WHERE
                inlognaam = '"
.mysql_real_escape_string($_POST['inlognaam'])."'
            AND
                wachtwoord = '"
.md5($_POST['wachtwoord'])."'
        "
;
        
        /* Result */
        $Result = mysql_query($Query);
        
        /* Kijken of query is gelukt. */
        if(!$Result)
        {

            echo 'Fout opgetreden met query, '.$Query.'';
        }

        else
        {
            /* Kijken of er een result is. */
            if(mysql_num_rows($Result) !== 0)
            {

                /* Sessies aanmaken. */
                $Rij = mysql_fetch_assoc($Result);
                
                $_SESSION['USER_ID'] = $Rij['ID'];
                $_SESSION['USER_IP'] = $_SERVER['REMOTE_ADDR'];    
            
                /* Doorsturen */
                header('location: jouwpagina.php');
            }

            else
            {
                /* Geen result. */
                echo 'Geen resultaat gevonden in database';
            }
        }
    }

    else
    {
        /* Geen wachtwoord ingevuld. */
        echo 'Geen wachtwoord ingevuld.';
    }
}

else
{
    /* Geen inlognaam ingevuld. */
    echo 'Geen inlognaam ingevuld.';
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Mark PHP

Mark PHP

07/05/2009 21:18:00
Quote Anchor link
@Ark
Ziet er al beter uit, alleen waarom zou je het IP vanuit de database selecteren? Dat wil je niet. Als je het IP in een sessie wilt hebben (wat soms handig is), gebruik dan $_SERVER['REMOTE_ADDR'].

@Afra
Je kan md5 ook prima met hash() voor elkaar krijgen.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Mr.Ark

Mr.Ark

07/05/2009 21:22:00
Quote Anchor link
@ Agirre

Je hebt gelijk, uit snelheid had ik daar niet bij nagedacht.
Zal het even verbeteren.
 
Afra ca

Afra ca

07/05/2009 21:48:00
Quote Anchor link
@ Agirre,

zeker, aangezien je bij hash als eerste parameter gewoon het algoritme kan aangeven. Maar denk dat

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php hash(md5,$tekst); ?>


iets lastiger is dan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php md5($tekst); ?>


voor een beginner.
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Mark PHP

Mark PHP

07/05/2009 21:50:00
Quote Anchor link
Klopt, voor een beginner is dat inderdaad makkelijker. Alleen hash() is meer flexibel en biedt meer mogelijkheden, dus vandaar dat ik deze altijd gebruik (meestal sha256).
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
 
Afra ca

Afra ca

07/05/2009 22:05:00
Quote Anchor link
Stem ik zeker mee in, en ik raad dan ook eigenlijk het gebruik van hash() aan. En met 35 algoritmes is de keuze reuze :)

Begrijp wel, de encryptie (ok, hash is officieel gezien geen encryptie) kan nog zo goed zijn, het gaat om de manier waarop het gebruikt wordt in een systeem. (evt. as easy as SQL INJECTION)
 
Wouter OOP

Wouter OOP

07/05/2009 23:37:00
Quote Anchor link
Bedankt voor alle reacties.
Ik vond het al heel wat dat ik begreep wat ik heb geschreven :), kennelijk komt er nog heel wat meer bij kijken.

@ark

Ook jij bedankt voor het herschrijven van het script, ik ga dit zeker gebruiken om te bestuderen.



Nogmaals bedankt,

Wouter
 
Wouter OOP

Wouter OOP

08/05/2009 15:05:00
Quote Anchor link
Nou vroeg ik me nog af, waarom isset?

Dat heb ik nog nooit gebruikt, is dit veiliger?
 
Mr.Ark

Mr.Ark

08/05/2009 15:35:00
Quote Anchor link
-> http://www.php.net/isset

Quote:
Determine whether a variable is set.
 
Oscar thys

oscar thys

30/04/2012 14:35:15
Quote Anchor link
Ben ik nu mis of heb ik het verkeerd voor,maar volgens mij mankeerd er een ")"afsluit haakje op de eerste If(isset($_POST['inlognaam'] AND !empty($_POST['inlognaam'])))
Dus ik kom op 3 uit
en in het verbeterde script staan er maar 2
 
Wouter J

Wouter J

30/04/2012 14:44:23
Quote Anchor link
Ben ik nu mis of is dit topic uit 8 mei 2009?
 



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.