PHP doet query niet uitvoeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Arno van Zanten

Arno van Zanten

01/06/2022 21:25:51
Quote Anchor link
Ik heb het opgelost, wel op een vreemde manier, maar het werkt.

logincheck.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
<?php
        echo"test<br>";

        include('./dbase.php');
//        Zet $_POST-varriabel om naar $varriabel        
        $user = $_POST['username'];
        $pass = $_POST['password'];
        $key = $_POST['key'];
//        Doe request naar dbase    
        
        echo "<br><br>We send this to the Dbase<br><br>";
        echo "Username : ".$user."<br>";
        echo "Password : ".$pass."<br>";
        echo "Key : ".$key."<br>";
        
        $sql = "SELECT * FROM AdminUsers WHERE Username='".$user."' AND Passwd='".$pass."' AND LoginKey='".$key."'";
        $result = mysqli_query($connect, $sql);
        $logindetails = mysqli_fetch_all($result, MYSQLI_ASSOC);
        
        // show mysql details
            echo "<br>Dbase string : ".$sql."<br><br>";
        // end
        
        foreach($logindetails as $detail) {
                echo "This we got from DBase<br>";
                echo "Username : ".$detail['Username']."<br>";
                echo "Password : ".$detail['Passwd']."<br>";
                echo "LoginKey : ".$detail['LoginKey']."<br>";
                echo "Name : ".$detail['Name']."<br>";
                
        }

        // compare the values
        if(!$details['Username'] == $user) {
            echo "<br>Username OK<br>";
        }
else {
            echo "Username not OK<br>";
        }

        if(!$details['Passwd'] == $pass) {
            echo "Password OK<br>";
        }
else {
            echo "Password not OK<br>";
        }

        if(!$details['LoginKey'] == $key) {
            echo "Key OK<br>";
        }
else {
            echo "Key not OK<br>";
        }

// If everything is OK
        echo "<br>Nu gaan we een sessie aanmaken<br>";
        session_start();
        $_SESSION['Name'] = $detail['Name'];
        $_SESSION['Username'] = $detail['Username'];
        $_SESSION['Passwd'] = $detail['Passwd'];
        print_r($_SESSION);
        
        header("Location: ../index.php");
?>
 
PHP hulp

PHP hulp

15/01/2025 12:08:29
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 21:33:20
Quote Anchor link
Werken zal het wel doen, maar er schort nog een hoop aan:

- Er mist beveiliging tegen SQL-injection. Dus pas mysqli_real_escape_string toe. Nu kan Jan en Alleman je query manipuleren met kwade gevolgen, maar ook zelf kan je de query saboteren. Vul maar eens een apostrof ' in.

- Je wachtwoorden staan open en bloot. Dit wil je niet, never, nooit! Zorg ervoor dat je ze opslaat met password_hash en controleert met password_verify

- Maak niemand wijzer dan ze al zijn, nu verklap je of iemands username goed is. handig voor de inbreker die dan verder kan gaan.

- Je kan een session_start() nooit gebruiken na output van je script. Zet deze altijd bovenaan het script.

- Wat is het nut om een wachtwoord in een sessie op te slaan? Het enige wat je moet opslaan is de status of iemand ingelogd is: $_SESSION['LoggedIn'] wat dan true of false is.
 
Arno van Zanten

Arno van Zanten

01/06/2022 21:35:42
Quote Anchor link
hey, het ging erom dat het werkt en ja ik ga dat zeker nog aanpassen.
Het is dat ik wel de site verder kan afwerken.
Wel moet ik alvast zeggen, bedankt voor je hulp.
Die info die jij mij gaf, was zeer behulpzaam en ik gebruik je idee.
Stap voor stap
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 21:43:08
Quote Anchor link
Je zou eventueel nog kunnen kijken voor brute-force beveiliging, en een mogelijkheid om accounts te bannen/deactiveren.
Genoeg mogelijkheden te bedenken.

Veel succes!
 
Arno van Zanten

Arno van Zanten

01/06/2022 21:44:49
Quote Anchor link
Is puur voor CMS panel, niet voor gebruikers, deze kunnen zich niet registreren.
Is een zakelijke website, maar toch bedankt voor de goede info.
Bedankt en ik zal zeker jullie hulp nog eens nodig hebben
 
- Ariën  -
Beheerder

- Ariën -

01/06/2022 21:47:16
Quote Anchor link
Ja, maar beiden kunnen zeker dan van belang zijn.
Iemand die 5 mislukte inlogpogingen doet zou je dan bijv. voor 5 minuten kunnen blokkeren voor een verdere inlog.

En als je gevorderd bent, dan kan je zelf bijvoorbeeld 2 Factor Authenticatie inbouwen zodat iedereen die inlogt nog even met bijv. Google Authenticator op zijn mobieltje een code opvraagt die wordt overgetypt na het inloggen.

Veiligheid voor alles.
Gewijzigd op 01/06/2022 21:47:48 door - Ariën -
 

Pagina: « vorige 1 2



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.