Hacker-aanval

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Developer / Python / Azure / Financial Organisatio

2021-02-01 iSense Developer Python Azure Financial Organisation Do you have experience as an IT Developer? Do you want to learn all there is to know about SAS? And do you like to work in an innovative and international environment? Then read on, because we're looking for you! ISDI45920 Salarisindicatie Depending on relevant work experience and or certification, you can expect a salary between €3.500,- and €5.500,- gross per month based on a 40-hour workweek. Aanvullende informatie opdracht iSense is a young, energetic and ambitious specialist in ICT employment mediation. iSense helps you find a job on operation, business consultancy and

Bekijk vacature »

Front-end Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-end Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Front-End Developer at Coolblue? Read below if the job suits you.

Bekijk vacature »

Java Server Developer

Ontwikkel jij graag door aan de innovatieve, prijswinnende mobiele identiteitsverificatie oplossing ReadID? Dan is Innovalor op zoek naar jou als Java Server Developer Functie omschrijving Jouw baan! Ontwikkelen van onze ReadID SaaS server, met security en schaalbaarheid als belangrijk aandachtspunt; Bijdragen aan de routekaart voor ReadID, zoals toevoegen van nieuwe functionaliteiten en integratie met aanvullende producten van onze partners (zoals gezichtsherkenning); Helpen van developers van onze klanten bij het integreren van the ReadID API, vooral de server-side API's (REST, XML, JSON); Schrijven van API-documentatie voor onze klanten; Bijdragen aan geautomatiseerd testen; Optioneel bijdragen aan big-data analyse van onze logbestanden (ReadID

Bekijk vacature »

Starters functie Fullstack Java Developer @ Randst

2021-06-10 iSense Starters functie Fullstack Java Developer Ben je onlangs afgestudeerd van een IT-opleiding of heb je nog maar weinig ervaring opgedaan? En wil je toch graag aan de slag als Java Fullstack Developer? Lees dan snel verder, want op 9 augustus 2021 starten wij weer met een graduate programma waarin jij jezelf kunt ontwikkelen tot een volwaardige Fullstack Java Developer! ISLE50164 Nieuw Locatie Regio Randstad Wat kan jij van ons verwachten? • Een goed salaris gedurende het gehele programma; dus ook tijdens je cursusperiode! • De mogelijkheid om belangrijke certificeringen te behalen op het gebied van JAVA • Loopbaancoaching

Bekijk vacature »

Senior C# .NET Core Developer / Azure / Docker / K

2021-05-05 iSense Senior C# .NET Core Developer / Azure / Docker / Kubernetes Ben jij een ervaren .NET Developer voor wie Microsoft technieken geen geheimen kennen? Wil jij bij een groot, bekend bedrijf in regio Eindhoven werken aan maatwerkapplicaties als CRM systemen en gebruikersportalen? Dan is dit dé vacature voor jou! ISDR49644 Organisatie Voor onze klant, een groot en bekend bedrijf in regio Eindhoven in de zakelijke dienstverlening, zoeken wij een Senior .NET Developer die wil werken aan diverse interne applicaties waar duizenden medewerkers mee werken. Zo worden er webportalen, CRM systemen en document management systemen in-house ontwikkeld. Ook worden

Bekijk vacature »

Tijdelijke Outsystems Developer @ Regio Den Haag

2021-05-27 iSense Tijdelijke Outsystems Developer Heb jij ervaring als OutSystems Developer en ben je graag in contact met de eindgebruikers? Binnen deze rol krijg jij de vrijheid om dit te doen, dus lees snel verder! ISS50020 Spoed Organisatie Onze opdrachtgever in de regio Den Haag is een jonge speler binnen de dienstverlenende sector. Duurzaamheid, service en flexibiliteit hebben zij hoog in het vaandel staan. Als organisatie zijn zij flink aan het groeien en staan zij inmiddels bekend als een sterke en vooruitstrevende speler binnen de markt. Doordat een Outsystems Developer de organisatie gaat verlaten, zijn zij tijdelijk op zoek naar

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Team Lead Applicatie Developers

UPS zoekt een Team Lead Applicatie Developers *THUISWERKEN IS MOGELIJK VOOR DEZE FUNCTIE Heb jij ruime ervaring als applicatieontwikkelaar? En vind je het leuk om boven op de laatste ontwikkelingen in je vak te zitten, mede-developers aan te sturen en altijd te blijven leren? Als Team Lead C# bij UPS werk je aan projecten die in veel verschillende landen worden gebruikt en maak je deel uit van een grote en internationale gemeenschap van agile teams. Dit ga je doen Je gaat aan de slag met het leveren van functionaliteiten voor zeer complexe IT-systemen. Je werkt samen met verschillende agile teams

Bekijk vacature »

Senior Applicatieontwikkelaar

UPS zoekt een Senior Applicatieontwikkelaar *Thuiswerken is mogelijk voor deze functie Ben jij een gedreven applicatieontwikkelaar met minimaal drie jaar werkervaring? En wil je een uitdagende baan met impact én jezelf breed ontwikkelen? Bij UPS bouw je mee aan complexe systemen die wereldwijd worden gebruikt en krijg je alle ruimte om nóg beter te worden in je vak. Dit ga je doen In een dynamisch scrumteam werk je aan de hand van processen en technologieën zoals CI/CD en DevOps aan het behalen van jullie doelen. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en

Bekijk vacature »

Software Developer Geospatial Technology

Would you like to be part of an innovative, inspiring and international environment? Are you excited to work in a Geo-ICT, Asset Management, Energy, Water & Telecom industry and do you have strong programming skills? The job as Experienced GIS Software Developer offers the challenge you are looking for! Software Developer Geospatial Technology 32-40 hours per week Your Job As Experienced GIS Consultant you will work in an international team on projects at leading customers in the Netherlands. You will deal with design solutions in which emerging technologies play an important role. Along with your colleagues and customers you will

Bekijk vacature »

BI Ontwikkelaar / Junior of Starter (HBO) @ Apeldo

2021-06-15 iSense BI Ontwikkelaar Junior of Starter (HBO) Ben jij HBO-opgeleid en een junior of starter op het gebied van ontwikkelen? Lijkt het je leuk om in een jaar opgeleid en begeleid te worden en mee te werken als BI-ontwikkelaar? Lees dan snel verder wat dit inhoudt en solliciteer! ISRO50194 Organisatie Als preffered supplier zijn we voor de Belastingdienst (te Apeldoorn) op zoek naar junior BI ontwikkelaars voor het SAS platform. SAS is een geavanceerd Big Data-softwareplatform dat wordt gebruikt voor toegang, beheer, rapportage en analyse van data in allerlei vormen. Jouw eerste jaar staat in het teken van het

Bekijk vacature »

C# Developer @ Breda

2021-05-20 iSense C# Developer C# Developer ISEY49300 Organisatie Onze opdrachtgever is een organisatie die maatwerksoftware levert binnen de internationale transport sector. Het gaat om de complete automatisering van bewerking-, opslag- en transportsystemen.Dit familiebedrijf bestaat al meer dan 40 jaar. Binnen het team van 8 developers zijn wij op zoek naar versterking door de toenemende vraag en groei van het bedrijf. Taken Het werken aan maatwerkapplicaties in C# en asp.net; Sparren met opdrachtgevers over aanpassingen; Sparren met teamleden over de aanpak van een project; Meewerken aan verschillende internationale projecten; Meewerken aan het opleveren van de frond-end (HTML5); Analyseren van bestaande code

Bekijk vacature »

.NET Developer

Gaat jouw hart sneller kloppen van het bouwen aan innovatieve oplossingen en het overwinnen van uitdagingen in de wereld van Supply Chain oplossingen, After Sales Services en E-commerce services? Dan is de functie als .NET Developer iets voor jou! Wat bieden wij jou Marktconform salaris! Een informele, dynamische werksfeer! Uitdagende positie in een groeiende organisatie! Doorgroeimogelijkheden! Wie ben jij Als .NET Developer word je onderderdeel van een klein ontwikkelteam dat eigen gebouwde software en SaaS oplossingen ontwerpt en ontwikkelt. Hierbij ligt een duidelijke focus op kwaliteit en schaalbaarheid. Hierover beschik jij: HBO-diploma in de richting van informatiesystemen of Toegepaste Informatica.

Bekijk vacature »

Database Marketeer

International Campaign for Tibet (ICT) zet zich al 30 jaar in voor behoud van de Tibetaanse cultuur, mensenrechten, democratische vrijheden en zelfbeschikking voor het Tibetaanse volk. Als grootste wereldwijde Tibet-organisatie heeft ICT kantoren in Washington DC, Amsterdam, Brussel, en Berlijn. ICT-Europe is gevestigd in Amsterdam. We onderzoeken en rapporteren de ontwikkelingen in Tibet, lobbyen bij regeringen, benaderen de media, organiseren evenementen en voeren campagnes voor meer aandacht en steun aan Tibet. ICT wordt gevormd door Tibetanen in Tibet die hun leven wagen om informatie met ons te delen, onderzoekers van mensenrechtenschendingen in Tibet, lobbyisten, woordvoerders die de pers te woord

Bekijk vacature »

C#.NET Fullstack Developer - MKB/Grootbedrijven -

Bedrijfsomschrijving Deze organisatie is gevestigd in het noorden van Den Haag, op een uitstekend bereikbare locatie nabij het Prins Clausplein. Momenteel werken hier ruim 50 medewerkers, waarvan er zo'n 8 samen de ontwikkelafdeling vormen. In verband met de huidige groei door een flinke groei in het klantenbestand is er behoefte aan uitbreiding van het team in de vorm van een ervaren Software .NET Developer. De sfeer in de organisatie is professioneel, maar toch ook informeel. Dit laatste geldt zeker voor de ontwikkelafdeling. Er wordt hier namelijk gewerkt aan software die zowel intern als extern gebruikt wordt, ter ondersteuning van de

Bekijk vacature »
George van Baasbank

George van Baasbank

12/11/2013 15:52:07
Quote Anchor link
Hallo allemaal,

Zojuist is een van mijn websites slachtoffer geworden van wellicht een hacker. Gelukkig hebben we een back-up van onze database want een van de tabellen is massaal overschreven met onzin.

Om dit in de toekomst te voorkomen vraag ik jullie hulp aangaande de code die ik hanteer om mijn database bij te werken. Ik weet nl via welke pagina dit is gebeurd.

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
if($cKnop == $cKnoptekst2a) {   // Invullen adresgegevens
        $cExtra = "Invullen adresgegevens";
        
        // Systeem inlezen
        include "include/connectie_nw.inc.php";
        $cSub = "Afronden bestelling";
        include "include/systeem_nw.inc.php";  
        
        $lIngevuld = TRUE;
        $_SESSION['ingevuld'] = $lIngevuld;
    
        // Gegevens klant verzamelen en opslaan
        $cVoorletters   = TekstInKapitaal($_POST['voorletters']);
        $cTussenvoeg    = TekstinOndercast($_POST['tussenvoeg']);
        $cNaam          = ucwords($_POST['naam']);
        $cFactuuradres  = ucwords(strtolower($_POST['factuuradres']));
        $cFactuurcode   = ConverteerPostcode($_POST['factuurcode']);
        $cFactuurplaats = TekstInKapitaal($_POST['factuurplaats']);
        $cTelefoon      = $_POST['telefoon'];
        $cEmailadres    = TekstinOndercast($_POST['emailadres']);
        
        // Controle op PUNT achter voorletter
        if(substr($cVoorletters,-1,1) != ".") {
            $cVoorletters .= ".";
        }
        
        // Testen op e-mailadres van klant al in database voorkomt
        include "include/connectie_nw.inc.php";
        $sql = "SELECT email FROM shop__klanten WHERE email = '$cEmailadres' AND wismarkering = 0";
        $cResultTestEmail = mysqli_query($verbinding,$sql);
        $nAantalRecords = mysqli_num_rows($cResultTestEmail);
        if($nAantalRecords == 0 ) { //   E-mailadres komt niet voor, voeg klantnaam toe
            if(isset($_SERVER['REMOTE_ADDR'])) {
                $cIpadres = $_SERVER['REMOTE_ADDR'];
            } else {
                $cIpadres = "Onbekend";
            }
            $sql = "INSERT INTO
                        shop__klanten
                        (
                            voorletters,
                            tussenvoeg,
                            achternaam,
                            adres,
                            postcode,
                            woonplaats,
                            telefoon,
                            email,
                            klantnummer,
                            ipadres)
                        VALUES
                        (
                            '$cVoorletters',
                            '$cTussenvoeg',
                            '$cNaam',
                            '$cFactuuradres',
                            '$cFactuurcode',
                            '$cFactuurplaats',
                            '$cTelefoon',
                            '$cEmailadres',
                            'nieuw',
                            '$cIpadres'
                        )";
            $cResultInvoer = mysqli_query($verbinding,$sql);
            
            // ID-nummer ophalen voor toekenning aan klantnummer
            $sql = "SELECT id FROM shop__klanten WHERE klantnummer = 'nieuw' AND wismarkering = 0 LIMIT 1";
            $cResultKlantnummer = mysqli_query($verbinding,$sql);
            $row = mysqli_fetch_array($cResultKlantnummer);
            $cKlantnummer = $row['id'];
            $sql = "UPDATE shop__klanten SET klantnummer = '$cKlantnummer' WHERE id = '$cKlantnummer'";
            $cResultUpdate = mysqli_query($verbinding,$sql);
            $_SESSION['klantnummer'] = $cKlantnummer;
            
            mysqli_close($verbinding);
        } else {   // E-mailadres komt al voor in database
            include "include/connectie_nw.inc.php";
            $sql = "UPDATE
                        shop__klanten
                    SET
                        voorletters = '$cVoorletters',
                        tussenvoeg = '$cTussenvoeg',
                        achternaam = '$cNaam',
                        adres = '$cFactuuradres',
                        postcode = '$cFactuurcode',
                        woonplaats = '$cFactuurplaats',
                        telefoon = '$cTelefoon'
                    WHERE
                        email = '$cEmailadres'";
            $cResultUpdate = mysqli_query($verbinding,$sql);
            // ID-nummer ophalen voor toekenning aan klantnummer
            $sql = "SELECT klantnummer FROM shop__klanten WHERE email = '$cEmailadres' AND wismarkering = 0 LIMIT 1";
            $cResultKlantnummer = mysqli_query($verbinding,$sql);
            $row = mysqli_fetch_array($cResultKlantnummer);
            $cKlantnummer = $row['klantnummer'];
            $_SESSION['klantnummer'] = $cKlantnummer;
            
            mysqli_close($verbinding);
        }



Hoe kan ik de code beter maken zodat alles in het werk is gesteld om meer ellende te voorkomen?
 
PHP hulp

PHP hulp

21/06/2021 12:56:07
 
Michael -

Michael -

12/11/2013 15:55:13
Quote Anchor link
Je controleert totaal geen gebruikers input. Elke willekeurige code kan dus worden ingevoerd.
Kijk eens naar functies als myqli_real_escape_string() htmlentities() htmlspecialchars()
 
Kris Peeters

Kris Peeters

12/11/2013 16:08:45
Quote Anchor link
Wel, we weten niet wat functies als TekstInKapitaal() doen.
Ik veronderstel dat dit van de eerste letter een hoofdletter maakt, of zo.

[een beetje off topic] Je zou dit trouwens niet mogen doen. Jij mag geen gegevens, die jouw gebruikers invullen, veranderen. [/een beetje off topic]

Wat zo'n functie zou moeten doen, is escapen.

$cVoorletters = mysql_real_escape_string($_POST['voorletters']);
$cTussenvoeg = mysql_real_escape_string($_POST['tussenvoeg']);
...

Escapen houdt aanvallen met SQL-injection tegen.


(Ik merk trouwens dat je al meerdere vragen stelde ivm. SQL, maar nooit iets gepost hebt waar je de SQL en de PHP-code samen toont. Anders hadden we jou daar al heel lang over aangesproken)
Gewijzigd op 12/11/2013 16:19:33 door Kris Peeters
 
Ward van der Put
Moderator

Ward van der Put

12/11/2013 16:52:27
Quote Anchor link
Niet alleen de code is onveilig, maar ook de logica. Vanaf de else op regel 76 overschrijf je bestaande klantgegevens in een UPDATE zodra een e-mailadres al voorkomt in de database. Daarmee kan iemand alle klantgegevens overschrijven door, per ongeluk of expres, een bestaand e-mailadres op te geven.

Alleen SQL-injectie tegengaan, zal hier niet helpen. De database vullen met onzin blijft door dit soort logicafouten mogelijk.
 
George van Baasbank

George van Baasbank

12/11/2013 17:16:23
Quote Anchor link
Als ik Kris goed begrijp moet ik alle POST-variabelen via een mysqli_real_escape_string inlezen

Ga ik eerst doen. Op de opmerkingen van Wart kom ik later terug.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
// Gegevens klant verzamelen en opslaan
$cVoorletters   = TekstInKapitaal(mysqli_real_escape_string($verbinding,$_POST['voorletters']));
$cTussenvoeg    = TekstinOndercast(mysqli_real_escape_string($verbinding,$_POST['tussenvoeg']));
$cNaam          = ucwords(mysqli_real_escape_string($verbinding,$_POST['naam']));
$cFactuuradres  = ucwords(mysqli_real_escape_string(strtolower($verbinding,$_POST['factuuradres'])));
$cFactuurcode   = ConverteerPostcode( mysqli_real_escape_string($verbinding,$_POST['factuurcode']));
$cFactuurplaats = TekstInKapitaal(mysqli_real_escape_string($verbinding,$_POST['factuurplaats']));
$cTelefoon      = mysqli_real_escape_string($verbinding,$_POST['telefoon']);
$cEmailadres    = TekstinOndercast(mysqli_real_escape_string($verbinding,$_POST['emailadres']));



Toevoeging op 12/11/2013 17:22:13:

De logica-fout waarop Ward mij aansprak heb ik onderkend en als volgt gewijzigd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
} else {   // E-mailadres komt al voor in database
            include "include/connectie_nw.inc.php";
            // ID-nummer ophalen voor toekenning aan klantnummer
            $sql = "SELECT klantnummer FROM shop__klanten WHERE email = '$cEmailadres' AND wismarkering = 0 LIMIT 1";
            $cResultKlantnummer = mysqli_query($verbinding,$sql);
            $row = mysqli_fetch_array($cResultKlantnummer);
            $cKlantnummer = $row['klantnummer'];
            $_SESSION['klantnummer'] = $cKlantnummer;
            
            mysqli_close($verbinding);
        }


Toevoeging op 12/11/2013 17:23:45:

In mijn geval heeft de ongewenste bezoeker alle namen en adressen gewijzigd in de klantentabel. Hoe kan ik zoiets voorkomen?

Toevoeging op 12/11/2013 18:08:22:

Nu heb ik dus de $_POST-variabelen via een mysqli_real_escape_string opgeslagen maar moet dit ook voor het onderstaande voorbeeld?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
//Koop definitief
        $sql = "UPDATE shop__winkelwagen SET koopdefinitief = 'Ja', koopmoment = NOW() WHERE ordernummer = '$cOrdernummer'";
        $cResultKoop = mysqli_query($verbinding,$sql);


In dit voorbeeld wordt een veld dus met de waarde van een variabele gevuld. Een ander voorbeeld staat hieronde:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
while($row = mysqli_fetch_array($cResultWinkelwagen)) {
            $cArtikelnummer = $row['productnummer'];
            $_SESSION['artikelnummer'] = $cArtikelnummer;
            $cPrijs = $row['prijs'];
            $cOpmerking = $row['opmerking'];
            $nAantal = 1;
            $nBTW = $cPrijs-(100/(100+$_SESSION['btw']) * $cPrijs);
            // Toevoegen aan bestellingen
            $cKlantnummer = $_SESSION['klantnummer'];
            $sql = "INSERT INTO shop__bestellingen (artikelnummer,klantnummer,aantal,factuurbedrag,btw,besteldatum,ordernummer,factuurdatum,opmerking)
                       VALUES('$cArtikelnummer','$cKlantnummer','$nAantal','$cPrijs','$nBTW',NOW(),'$cOrdernummer',NOW(),'$cOpmerking');";
            $cResultBestelling = mysqli_query($verbinding,$sql);
        }


Voorbeeld 1 was via een UPDATE en voorbeeld 2 via een INSERT
Gewijzigd op 12/11/2013 18:24:59 door George van Baasbank
 



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.