geavanceerd zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

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 »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Front-end developer

Functie Jij komt te werken in een team van 5 developers. het product is continue in beweging. Nieuwe en bestaande klanten vragen om vaak nieuwe features. Hierin ben jij zeer belangrijk om te zorgen dat de functionaliteiten goed opgezet worden op technisch vlak. Designs krijg je aangeleverd van een externe partij zodat jij je primair kan focussen op de techniek! Je hebt daarbij alle vrijheid om je eigen creativiteit toe te passen en mee te denken over de gebruikte technieken. Het gezamenlijke doel is een product dat functioneel zeer gebruiksvriendelijk is en het bedrijfsproces van de gebruikers versneld en kwalitatief

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: 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 je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Backend Developer Integraties API HBO REST

Samengevat: Deze werkgever is een IT-consultancy. Wil jij werken als Backend Developer Integraties? Heb jij kennis van gangbare berichtformaten? Vaste baan: Backend Developer Integraties API HBO €3.100 - €4.400 Zij bieden innovatieve oplossingen die bedrijven efficiënter en wendbaarder maken, waardoor onze klanten zich net zo snel kunnen ontwikkelen als de business van hen vraagt. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot en ingewikkeld. Hou jij van diepgang

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

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

27/05/2026 02:22:48
 
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.