geavanceerd zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

.NET 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 »

Front-end developer Supply Chain Angular, ReactJS,

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

Anaplan Developer

Dit ga je doen What are you going to do: Picking up Stories: Design planning had, how are we going to build it in Anaplan; Talking to the end user to build a forecasting model; Having contact with the data team about which data is needed; Being able to convert an Excel sheet into a 3, 4 or 5 dimensional modeling environment; Giving knowledge sessions about Anaplan; Solving incidents; Making instructional videos on how teams should read forecasts; Writing blogs about forecasting. Hier ga je werken We are looking for an Anaplan Builder to deliver end-to-end solutions within a big

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Utrecht, die jou tot een volwaardig Fullstack Software Developer gaat opleiden. Binnen deze grote organisatie krijg je ruime en professionele trainingen die jouw in korte tijd vakbekwaam maken. Niet alleen het aan technisch aspect, maar ook zeker jouw persoonlijke ontwikkeling wordt veel

Bekijk vacature »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

C# Developer

Dit ga je doen Je gaat aan de slag in het websites team of portals team waarin je je bezighoudt met concept & design, implementatie en ook een stukje bugfixing en onderhoud; Je werkt met je team volgens de Scrum werkwijze; Zo adviseer je ook de PO & Scrum Master over de technische architectuur, koppelingen en integratie met externe systemen en API’s; Je blijft op de hoogte van de laatste ontwikkelingen en trends op het gebied van C# / .NET en deelt deze kennis binnen de organisatie. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de

Bekijk vacature »

.NET Developer C# VB

Samengevat: Deze werkgever is actief in software voor het matchen van vraag en aanbod van gebruikte auto-onderdelen. Ben jij een .NET Developer? Heb je ervaring met het ontwikkelen (REST) en integreren van webservices? Vaste baan: C# .NET Developer C# VB HBO €2.600 - €6.200 Wij ontwikkelen software om vraag en aanbod van onderdelen van personenauto's bij elkaar te brengen. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. De branche van dit bedrijf is Automotive. Functie: Voor de vacature als .NET Developer Dordrecht HBO ga je

Bekijk vacature »
Robert Jansen

Robert Jansen

22/10/2017 13:28:03
Quote Anchor link
hallo,

ik ben bezig met het maken van een script om geavanceerd te kunnen zoeken.
er zijn drie kolommen: titel, jaar en vol_naam (dit zijn dus ook drie invoervelden in het formulier)
Als je alle drie de formulierenvelden invuld en dan uitvoert dan werkt de zoekfunctie.
Maar als je alleen op titel zoekt en de andere twee velden niet invuld dan krijg ik de foutmelding: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given.

ik heb geprobeerd dit op te lossen door een nieuwe case te maken en met een multiquery maar dit werkt dus ook niet.

mijn vraag is: hoe kun je, als je alleen het titel veld invuld dat je dan alleen op titel zoekt en de andere velden 'negeert'?

de code is:
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
if(isset($_POST['zoeken'])){

$zoekwoord = $_POST['zoekwoord'];
$beginjaar = $_POST['beginjaar'];
$eindjaar = $_POST['eindjaar'];

if(isset($_POST['criteria'])){
    $select1 = $_POST['criteria'];
    $bijdrager = $_POST['bijdrager'];
    switch ($select1) {
        case 'titel':
        $bijdr_id = $_SESSION['bijdr_id'];
            echo $bijdr_id;
            $sql = "SELECT f.titel, f.jaar, b.vol_naam FROM tblfoto_info f, tblbijdrager b WHERE (b.bijdr_id = f.bijdr_id OR titel LIKE '%" . $zoekwoord .  "%' OR jaar BETWEEN $beginjaar AND $eindjaar) AND b.bijdr_id = $bijdr_id";
            
                    $result = mysqli_query($conn, $sql);

                   while($row = mysqli_fetch_assoc($result)) {
                     $titel = $row['titel'];
                     $jaar = $row['jaar'];
                     $bijdrager = $row['vol_naam'];
                     // $info = $row['info'];
                      echo "<ul>";
                       echo "<li> $titel</li>";
                       echo "<li>$jaar</li>";
                       echo "<li>$bijdrager</li>";
        //echo "<li>$info</li>";
                echo "</ul>";
              }
            break;

}}}
 
PHP hulp

PHP hulp

22/06/2025 19:24:34
 
Ben van Velzen

Ben van Velzen

22/10/2017 13:49:25
Quote Anchor link
Waar is de foutafhandeling voor de query? De reden is eenvoudig genoeg, als je beginjaar en eindjaar niet invult krijg je een query die niet klopt.
 
Robert Jansen

Robert Jansen

22/10/2017 14:10:18
Quote Anchor link
ok, maar hoe kun je dit het beste afhandelen?
 
Ben van Velzen

Ben van Velzen

22/10/2017 14:24:28
Quote Anchor link
Door te controleren of de velden ingevuld zijn, en als dat niet zo is een andere query draaien. Maar begin eens met het inbouwen van foutafhandeling, dan had je dat ook meteen gezien.
Gewijzigd op 22/10/2017 14:25:17 door Ben van Velzen
 
Thomas van den Heuvel

Thomas van den Heuvel

22/10/2017 19:18:15
Quote Anchor link
Wat je in feite moet doen -als niet alle invulvelden verplicht zijn- is de query stap voor stap opbouwen.

Als je enkel een beginjaar invult zul je dus bijvoorbeeld moeten kijken vanaf dat jaar, als je enkel een eindjaar invult zul je moeten kijken tot (en met of tot en zonder) dat jaar. Als je beide invult zul je hiertussen moeten zoeken.

De vorm van je uiteindelijke query hangt dus direct af van de al dan niet ingevulde velden.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2017 20:19:46
Quote Anchor link
Voorbeeldje over wat Thomas zegt:

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
// initialisatie
$titel = null;
$beginjaar = null;
$eindjaar = null;

/* overschrijf de variabelen met de POST variabelen, bijvoorbeeld: */
if(isset($_POST['titel'] && !is_empty($_POST['titel'])) {
    $titel = $_POST['titel'];
}


// en zo het zelfde voor beginjaar en eindjaar

$sql = 'SELECT * FROM tabel';
$whereParts = array();

if($titel !== null) {
    $whereParts[] = "titel LIKE '%" . $titel .  "%'";
}

if($beginjaar !== null) {
    $whereParts[] = "jaar >= $beginjaar";
}

if($eindjaar !== null) {
    $whereParts[] = "jaar <= $eindjaar";
}

if(count($whereParts)) {
    $sql . = ' WHERE ' . implode(' AND ', $whereParts);
}


$result = mysqli($conn, $sql);
// ...
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

23/10/2017 00:13:32
Quote Anchor link
Belangrijke kanttekening bij @Frank zijn verhaal (ik snap dat dit enkel bedoeld was om te illustreren hoe het opbouwen verloopt, zonder het voorbeeld verder ingewikkelder te maken).

Wat je dus in feite hebt is dus een SQL-string met afwisselend SQL en (USER) DATA van buitenaf:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[SQL][DATA][SQL][DATA][SQL]

Het is heel erg belangrijk dat de DATA in de SQL-query niet geïnterpreteerd kan worden als SQL-code. Hiermee zou iemand effectief de werking van de query kunnen aanpassen die in het meest vervelende geval lijdt tot manipulatie of diefstal van gevoelige informatie. Dit (DATA die als SQL geïnterpreteerd wordt) staat beter bekend als SQL-injectie.

Wat je hier enerzijds tegen zou kunnen doen is je invoer filteren: jaartallen zouden numeriek moeten zijn.

Maar wat misschien nog veel belangrijker is is het escapen (en daarmee onschadelijk maken) van uitvoer. Hiermee zorg je ervoor dat DATA niet als SQL geïnterpreteerd kan worden en hierdoor is SQL-injectie niet meer mogelijk.

Je escaped uitvoer (USER DATA) door middel van het toepassen van de escaping-functie real_escape_string() IN COMBINATIE MET het quoten (voorzien van quotes) van de ge-escapete string. Het een is NIET VEILIG zonder het ander.

Wat je moet begrijpen is dat real_escape_string() enkel speciale karakters (die een speciale betekenis binnen SQL hebben) onschadelijk maakt. real_escape_string() is dus geen wondermiddel. Het volgende stuk tekst (dit zou dus een ingevoegd stuk DATA kunnen zijn) bevat informatie die een speciale betekenis in SQL heeft, maar die verder ongemoeid wordt gelaten door real_escape_string():
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
OR 1=1

Dit zou catastrofale gevolgen kunnen hebben die (bijvoorbeeld) securitychecks bypassen. Zorg dus dat je ALTIJD quotes om de ge-escapete DATA-passages zet.

Wees dus altijd zeer voorzichtig wanneer je USER DATA gebruikt en een goede gewoonte is om deze NOOIT te vertrouwen.
Gewijzigd op 23/10/2017 00:17:48 door Thomas van den Heuvel
 
Robert Jansen

Robert Jansen

23/10/2017 14:18:49
Quote Anchor link
ok, bedankt voor de info.
Ik heb een vraag over de real_escape_string().
Als je OR 1=1 uitvoert in een form veld, heb je dus een sql injectie, ook maak je gebruik van real_escape_string().
Maar als je nu gebruik maakt van prepared statement, is dit dan wel waterdicht?
zie http://php.net/manual/en/mysqli-stmt.bind-result.php

Hoe kun je dan het beste beschermen tegen sql-injecties?
 
Thomas van den Heuvel

Thomas van den Heuvel

23/10/2017 14:40:55
Quote Anchor link
Quote:
Als je OR 1=1 uitvoert in een form veld, heb je dus een sql injectie, ook maak je gebruik van real_escape_string().

Nee, dat is niet wat ik zeg. Wat ik bedoel is dat je real_escape_string() altijd moet gebruiken in combinatie met quotes. Alleen deze combinatie is veilig. Enkel (enkele) quotes om invoer zetten is niet veilig. Enkel real_escape_string() gebruiken is niet veilig. Alleen de combinatie.

Quote:
Maar als je nu gebruik maakt van prepared statement, is dit dan wel waterdicht?

Geen enkel verkeerd gebruik van een methode is veilig :). Als je bijvoorbeeld de DATA nog steeds concateneert in een string in een opzet waarbij je prepared statements zou gebruiken ben je nog steeds nat (dit is dus een verkeerd gebruik). Daarnaast is -in ieder geval in MySQLi- het gebruik van prepared statements nogal omslachtig. Ik gebruik dit in ieder geval niet, teveel moeite om data uit de database op te hoesten. Tenzij je wellicht een wrapper schrijft die je het leven wat aangenamer kan maken. Nee, met enige discipline kun je best zonder prepared statements.

Quote:
Hoe kun je dan het beste beschermen tegen sql-injecties?

Je kunt je het beste wapenen tegen SQL-injectie door de principes die dit mogelijk maken te begrijpen, en hier vervolgens op te acteren. In mijn vorige bericht doe ik beide uit de doeken.

Daarnaast moet je in alles wat je doet je bewust zijn van input (stel jezelf de vraag: kan ik deze DATA vertrouwen (spoiler: het antwoord is bijna altijd NEE, zelfs als de data in je database zit, als je deze weer uitleest zou je deze nog steeds niet moeten vertrouwen want deze is afkomstig uit een externe bron)) en output.

Input zou je altijd moeten filteren als deze aan een bepaald formaat zou moeten voldoen en output zou je altijd moeten escapen binnen de context (HTML, SQL et cetera) waarin je werkt, tenzij je hier een speciale -en gedocumenteerde- reden voor hebt om dit niet te doen. Kort gezegd is dit de aloude vuistregel filter input, escape output. In alles wat je doet.

Daarbij moet gezegd worden dat (een correcte werking van) escaping-functionaliteit (direct) afhankelijk is van de gebruikte character encoding. Dus zorg ook dat je daar kaas van gegeten hebt. Want There Ain't No Such Thing As Plain Text.
Gewijzigd op 23/10/2017 14:55:32 door Thomas van den Heuvel
 



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.