beveiligings class veilig genoeg?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

Software Developer PHP

Functie omschrijving We are looking for a dutch native speaker Voor een opdrachtgever in de regio van Geldrop ben ik op zoek naar een Software Developer PHP. Jij krijgt een rol met veel verantwoordelijkheid in een groeiende organisatie. In deze functie werkt je voornamelijk remote en op een vast moment kom je met het team samen, om samen te werken en nieuwe doelen te bepalen. Wat ga je doen? Je wordt verantwoordelijk voor de interne applicatie; Je zorgt voor de doorontwikkeling van de applicatie: zowel back-end, front-end; De basis van het werk betreft front-end technieken; Periodiek bepaal je samen met

Bekijk vacature »

Back-end Developer C#

Functie omschrijving We are looking for a dutch native speaker Ben jij een ervaren back-end developer, die graag in een in-house functie wil werken? Passen de woorden innovatie, programmeren en teamspeler bij jou? Zoek niet verder en lees snel verder. Voor een echt familiebedrijf in de regio van Uden ben ik op zoek naar een back-end developer, die met name kennis heeft van C# en .NET. Jij gaat de interne applicaties verder optimaliseren en nieuwe features ontwikkelen. Verder ga je de volgende werkzaamheden uitvoeren: Ondersteunen gebruikers; Uitvoeren van analyses van de software/applicaties; Maken van functionele ontwerpen en deze door vertalen

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »
Dennis

dennis

20/07/2009 00:40:00
Quote Anchor link
beste PHP hulpers,

ik heb een beveiligings class gebouwd die ik universeel wil gaan gebruiken binnen mijn projecten. mijn vraag aan jullie kunnen jullie hem is bekijken en mij wijzen op fouten/lekken in de beveiliging en wellicht tips geven.

aub geen commentaar geven op het mogelijk onjuist gebruik van OOP maar dit is mijn manier van OOP gebruiken en ik vind hem zo fijn.

het script
class.auth.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
<?php
//class.auth.php
//last modified 19/07/2009
//version 1.0


class authorization {

    public    $minlvl    = null;
    public  $error     = null;
    private    $db        = null;

    function
__construct($minlvl = '0')
    {

        $this->minlvl = $minlvl;
        $this->db = new database();
        $this->login_check();
    }


    //login_check, checks if user has acces to the current page
    protected function login_check()
    {
    
        if (($_SERVER['REQUEST_URI'] == "/login/") or ($this->minlvl == "0")){
            return false;
        }

    
        if ($_SESSION['adminlvl'] < $this->minlvl){
            $this->logout();
        }

    
        if($_SESSION['fingerprint'] == hash("sha512",$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$_SERVER['HTTP_ACCEPT_ENCODING'].$_SERVER['DOCUMENT_ROOT']."authorized")){
            return true;
        }
else {
            $this->logout();
        }
    }


    //login, verify the user's credentials and give him/her acces
    protected function login($username = '',$password = '',$redirect = '')
    {


        if((!empty($username)) && (!empty($password)) && ($_SERVER['HTTP_HOST'] == HTTP_HOST) && ($_SERVER['SCRIPT_NAME'] == '/login.php'))
        {

            $password = hash("sha512",SALTKEY.$password);
            $query = $this->db->query("SELECT user_id,adminlvl,ipadres FROM users WHERE username = '".$username."' AND password = '".$password."'");
    
            if($this->db->num_rows($query) != 1)
            {

                $this->error = "Verkeerde username of password";
                return false;
            }

            else
            {
                $rec = $this->db->fetch_assoc($query);
                
                $_SESSION['user_id']    = $rec['userid'];
                $_SESSION['adminlvl']    = $rec['adminlvl'];
                $_SESSION['username']    = $username;
                $_SESSION['lastip']        = $rec['ipadres'];
                $_SESSION['fingerprint'] = hash("sha512",$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$_SERVER['HTTP_ACCEPT_ENCODING'].$_SERVER['DOCUMENT_ROOT']."authorized");
                
                if(!empty($redirect))
                {

                    header("Location: ".$redirect);
                }

                else
                {
                    if(SSL == "1")
                    {

                        header("Location: https://".HTTP_HOST."/");
                    }

                    else
                    {
                        header("Location: http://".HTTP_HOST."/");
                    }
                }

                
                return true;
            }
        }

        else
        {
            $this->error = "Aanmelden mislukt";
            return false;
        }
    }

    
    //logout, safely destroy the acces token and redirect the user to the login form
    public function logout()
    {

        unset($_SESSION);
        session_destroy();
        header('Location:/login/');
        exit();
    }
}


$auth = new authorization();
?>
 
PHP hulp

PHP hulp

22/12/2024 19:01:23
 
Quote Anchor link
Je zet $username in een query zonder mysql_real_escape_string aan te roepen. Verder vind ik persoonlijk sha512 een beetje te overdreven :), dat je niet de standaard sha1 of md5 gebruikt is mooi, maar bij mij is de max toch wel sha256, die wordt de komende jaren echt nog niet binnen bruikbare tijd gekraakt. Verder heb ik er niks op aan te merken.

sha256 is ook aanzienlijk sneller dan 512 trouwens: http://nl.php.net/manual/en/function.hash.php kijk eerste comment
Gewijzigd op 01/01/1970 01:00:00 door Deze site laat je geen account deleten
 
Dennis

dennis

20/07/2009 01:52:00
Quote Anchor link
@ teuneboon,

ik gebruik geen mysql_real_escape_string, omdat ik niet altijd mysql gebruik.
Dit systeem moet met meerdere SQL databases kunnen werken dus afhankelijk van welke database class jij inlaad (pgsql,mysql,mssql). Alle beveiliging omtrent de database worden uitgevoerd in de database class waar een query dus BV: door mysql_real_escape_string gaat. (in de mysql versie van de database class dan).
 
TJVB tvb

TJVB tvb

20/07/2009 09:23:00
Quote Anchor link
Hoe ga je een volledige query door een escape functie halen? En waarom gebruik je dan geen pdo? Dan hoef je niet je eigen database classes te schrijven.
 
Dennis

dennis

20/07/2009 12:14:00
Quote Anchor link
@teuneboon & TJVB,

ik heb gevraagd om de veiligheid van de login class te bespreken, niet over de de verwerking van de query's die wordt veilig afgehandeld door mijn intelligente database class die uitleest waar de user input zich bevind.

mensen graag bekritiseren over de veiligheid van het login systeem en eventuele tips, verbeteringen.
 
Erik Rijk

Erik Rijk

20/07/2009 12:20:00
Quote Anchor link
Hoi Dennis,

Je vraagt mensen naar de beveiliging.
Wij kunnen niet zien wat jou database class doet. Ik vind het dus geen rare vraag waarom mensen zich afvragen waarom je geen foutafhandeling in je query toepast, dat kan je nergens terug vinden.

Misschien handig om dat deel er dus even bij te plaatsen, dan is het voor iedereen duidelijk! :)
 



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.