beveiligings class veilig genoeg?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mendix Advanced Developer (NL)

Mendix Advanced Developer (NL) Den Haag HBO/WO IT Professional "Als Mendix Advanced Developer impact maken op de groeiende E-commerce markt met onze logistieke software en onze kritieke logistieke keten. Je doet dit door ontwikkeling en uitbreiding van onze Mendix Cloud omgeving, waarbij je complexe business processen vertaalt naar kritieke Mendix applicaties.". Wat ga je doen? PostNL is becoming a postal tech company Als Mendix Advanced Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead, Mendix Developers en Solution Consultants. Wij zetten Mendix in voor kritieke processen waarbij applicaties optimaal moeten performen om dagelijks rond de

Bekijk vacature »

PHP developer

Voor een klant van Computer Futures ben ik op zoek naar 2 PHP developers. Het gaat om een complex project wat veel maatwerk vereist. Dit heeft te maken met de wensen van verschillende klanten. De klant levert een applicatie voor zowel klanten in Nederland als internationale klanten. Ben je iemand die graag aan complexe projecten werkt, graag met gedreven collega's werkt en ook nog met een internationaal aspect? Dan past deze opdracht bij jou. Technisch: PHP SQL ervaring Testing Ci/CD Scrum Algemeen: Locatie: Utrecht ( momenteel remote ) Start: ASAP Taal: Nederland sprekend Uren: 32 - 40 uur Tarief: in

Bekijk vacature »

Medior C# Developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Hoe word ik C# Developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# Developer worden bij Coolblue? Funda legt je uit hoe je dat doet. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of Dynamo/Cosmos. Problemen oplossen met

Bekijk vacature »

Stage Web Developer

Wie zijn wij? pili's visie is om voor iedereen een wereld vol services te creëren gedreven door techniek. We streven ernaar om de plek te worden waar je professionals kan vinden, boeken en betalen op basis van gemak, transparantie en vertrouwen. We bouwen momenteel ons SaaS ecosysteem voor service professionals waarin zij hun klanten en zaken op 1 plek beter kunnen beheren. We digitalizeren de services sector en zijn van plan om nog meer functionaliteit toe te voegen zodat uiteindelijk iedereen de juiste vakman kan vinden en iedere professional zijn services eenvoudig en op een unieke manier kan aanbieden op

Bekijk vacature »

C# .NET Developer

Bedrijfsomschrijving Je komt terecht bij een innovatieve en dynamische organisatie, die gespecialiseerd is in het ontwerpen, bouwen en implementeren van systemen voor gebruik binnen (semi-)industriële omgevingen. Het is een organisatie met meer dan 15 jaar ervaring in de industriële branche. Tevens zijn ze een ervaren en betrouwbare partner die "state of the art" oplossingen biedt. De systemen worden wereldwijd door organisaties gebruikt en zijn volledig geautomatiseerd. De systemen zijn via het web toegankelijk gemaakt door diverse .NET oplossingen. De oplossingen die worden aangeboden worden gekenmerkt door hun soliditeit en betrouwbaarheid. Bij deze organisatie wordt er veel waarde gehecht aan een

Bekijk vacature »

E-learningontwikkelaar

Wil jij meewerken aan de ontwikkeling van hoogwaardige leeroplossingen? En vind je het leuk om bij te dragen aan het opleiden van medewerkers van zorginstellingen die met HiX, onze ICT-totaaloplossing voor de zorg, gaan werken? Dan is dit de perfecte uitdaging voor jou! Jouw baan Je belangrijkste taak is het ontwikkelen van e-learningmodules voor specifieke doelgroepen en het inhoudelijk meedenken over en ontwikkelen van creatieve, didactische concepten voor onze klanten. Ruim 160.000 ziekenhuismedewerkers zijn straks door jóuw producten beter in staat om hun patiënten te helpen. Jouw team Als e-learningontwikkelaar ben je onderdeel van het team Documentatie dat bestaat uit

Bekijk vacature »

Project Management Ondersteuner (PMO) - Publieke V

Functiebeschrijving: Ben jij een betrokken PMO professional die de klant ondersteunt, ontzorgt en van aanpakken weet? Een echte meedenker die ziet wat er moet gebeuren en snel actie onderneemt? In deze uitdagende rol ben je mede verantwoordelijk voor de realisatie van complexe projecten en oplossingen binnen het veiligheidsdomein. Wat ga je doen? Als Project Management Ondersteuner (PMO) zorg je voor een goede en kwalitatieve projectadministratie. Je werkzaamheden zullen bestaan o.a. uit: Het bewaken van de richtlijnen van issuemanagement voor de projecten; Het assisteren van de projectmanagers bij het opstellen van de projectplanningen en communicatieplannen en het bewaken hiervan; Het inbedden

Bekijk vacature »

Digital Workplace Engineer - Global Technology Ope

Digital Workplace Engineer - Global Technology Operations PositionDescription Ben jij een ambitieuze Digital Workplace Engineer die de ontwikkelingen en innovaties op het gebied van Digital Workplace & Cloud op de voet volgt? Wij zoeken ter versterking van ons team zowel multi-skilled als specialistische engineers met passie voor hun vak! Bij ons krijg je de ruimte en vrijheid om in de praktijk jezelf verder te ontwikkelen op diverse projecten en aan je theoretische kennis te werken door het volgen van trainingen en behalen van certificaten. Wat ga je doen? Als Digital Workplace Engineer werk je binnen een team van enthousiaste specialisten

Bekijk vacature »

PHP Developer

Bedrijfsomschrijving Het bedrijf waar je komt te werken is een familiebedrijf. Een van de grootste spelers in de internationale bloemenhandel. De cultuur binnen het bedrijf kan het beste worden omschreven als no-nonsense. We werken hard met elkaar om de klus te klaren en stoppen pas als het werk af is. Betrokkenheid, enthousiasme en collegialiteit staan hoog in het vaandel. Functieomschrijving Jij vult je dagen met enthousiasme voor het onderhouden, door ontwikkelen en testen van de webapplicatie. Je zult hierbij participeren in diverse projecten ten behoeve van uitbreiding en functionaliteit. Ook zul je API koppelingen opzetten met externe partijen en dit

Bekijk vacature »

Applicatie engineer

Ben jij een teamplayer en krijg je energie van het ontwerpen, verbeteren en onderhouden van nieuwe en bestaande IT-systemen bij onze klanten? Wil je jouw ICT-kennis optimaal inzetten én verder uitbreiden? Lees dan zeker even verder! Als Applicatie engineer bij NEH onderhoud je de automatiseringssystemen en IT-applicaties die in beheer zijn van NEH. Daarnaast ontwerp en realiseer je ook nieuwe systemen of breng je verbeteringen aan in bestaande systemen en de relevante onderliggende interfaces tussen deze systemen. Bij de start van je carrière bij NEH begin je met een specifieke klus via een partner van NEH. Dit betreft het patchen

Bekijk vacature »

Full Stack .NET Developer voor zakelijke vergelijk

Dutch is mandatory for this position. Als Full Stack C#.NET Developer zorg jij ervoor dat het vergelijkingsplatform over de nieuwste functionaliteiten beschikt. Deze applicatie ondersteunt assurantiekantoren in het inzichtelijk maken en vergelijken van verschillende verzekeringsproducenten. Denk hierbij aan de meest actuele gegevens over premies en voorwaarden. Dit doen zij volledig onafhankelijk. Als Developer ben je bedreven in het samenvoegen van verschillende web services en databasen. Samen met jouw collega’s ben je verantwoordelijk voor het volledige ontwikkeltraject. Je schakelt makkelijk met verschillende afdelingen over bestaande en nieuw te ontwikkelen functionaliteiten. Naast het ontwikkelen van nieuwe functionaliteiten, zal je ook de bestaande

Bekijk vacature »

.NET Developer Datawarehouse

.NET Developer Datawarehouse Werk jij als software developer het liefst met uitdagende systemen? Wil jij je steentje bijdragen aan een betere en efficiëntere zorg? Dan kun jij je bij onze vestiging in Amsterdam volledig uitleven als .NET Developer Datawarehouse. Jouw baan Je ontwerpt, ontwikkelt, ondersteunt en onderhoudt je eigen Datawarehouse module binnen HiX, onze ICT-totaaloplossing voor de zorg. Je schrijft objectgeoriënteerde code (we werken met Microsoft technologie, wat betekent dat je veel met C# gaat werken), speurt naar verbeteringen, werkt aan vernieuwende projecten, doet code reviews en voert testen uit. Een uiterst verantwoordelijke job, want dankzij jouw software kunnen zorginstellingen

Bekijk vacature »

Process & IT consultant

Krijg jij energie van het (digitaal) transformeren van processen naar customer facing oplossingen? Heb jij brede proceskennis, zoals sales, contract- en ordermanagement, marketing, customer service en support?? En wil jij je steentje bijdragen aan de circulaire economie? Lees dan snel verder, want wij zijn per direct op zoek naar een: Process & IT Consultant (Customer facing) (Standplaats: Eindhoven (NL) of Puurs (BE) Als Process & IT consultant maak je deel uit van het Center of Excellence voor Customer Engagement. Samen met je teamgenoten werk je aan een verdere digitalisering van ons klantcontact door het verder uitbouwen van onze customer facing

Bekijk vacature »

Als PHP-er echt iets bijdragen aan de wereld? Hier

Bedrijfsomschrijving Dit bedrijf werkt al ruim 15 jaar aan complexe cloud based software die gericht is op de gezondheidszorg. Deze oplossing wordt over heel de wereld door honderdduizenden mensen gebruikt bij ontzettend veel verschillende instellingen. Binnen de oplossing wordt er heel veel informatie geregistreerd die geanalyseerd wordt. Uit deze analyses komen adviezen die gebruikt kunnen worden om de kwaliteit en veiligheid van de werkzaamheden te verbeteren. Er werken hier bijna 20 mensen in verschillende vakgebieden waarbij de ontwikkelafdeling momenteel uit 4 developers bestaat. Echt hiërarchie bestaat hier nauwelijks, iedereen heeft zijn eigen inbreng en de sfeer is erg informeel. Functieomschrijving

Bekijk vacature »

Cobol Programmeur Ontwerper

Bedrijfsomschrijving Voor een bekende overheidsinstelling in regio Den Haag zijn wij opzoek naar een tijdelijke Cobol programmeur. Je zal verantwoordelijk zijn voor het ontwikkelen en onderhouden van de Cobol applicatie omgeving. Maar ook het ontwikkelen en bouwen van applicaties in de web-omgeving behoort tot jouw taken en verantwoordelijkheden. Je denkt mee met de organisatie en achterhaald bij de gebruikers welke wensen er nog zijn. Functieomschrijving Ben jij een Cobol programmeur en zoek je een toffe vaste baan? Wil je werken bij een hele bekende overheidsinstelling in Den Haag? Heb je naast ontwikkelen ervaring met ontwerpen en verbeteren van Cobol omgevingen?

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

21/01/2021 16:35:54
 
Teun Beijers

Teun Beijers

20/07/2009 01:38:00
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 Teun Beijers
 
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
Moderator

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.