Geparametriseerde query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

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 »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

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 »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

Bekijk vacature »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

Traineeship ICT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »
Alex Bakker

Alex Bakker

16/01/2015 10:43:57
Quote Anchor link
Goedemorgen,

Hieronder staat een stukje script die niet veilig is.
Ik moet deze herschrijven om het SQLI veilig te maken.
Ik heb het geprobeerd met escapen, maar dat houdt alleen bepaalde karakters tegen.
Het script moet ook beveiligd worden tegen bv OR 1=1.
Ik heb het geprobeerd met wat tutorials, maar snap niet precies hoe een geparametriseerde query werkt.
Ik ben nieuw op dit forum en hoop dat ik hier goed zit, anders hoor ik het graag.

Ik vraag niet voor een quick fix, want daar leer ik zelf niets van.
Ik heb de code geplaatst, zodat het makkelijker is om te zien waar ik het over heb.

Alvast bedankt voor de moeite.


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
<?php
    mysql_connect("localhost", "cms", "cms");
    mysql_select_db("cms_nl");

    if (!isset($_GET['cmd'])) {
        header("Location: ?cmd=show&id=1");
        exit;
    }


    switch($_GET['cmd']) {
        case
"show":
            if (isset($_GET['id'])) {
                print getPage(mysql_real_escape_string($_GET['id']));
            }

            break;

        case
"search":
            if (isset($_GET['query'])) {
                print search(mysql_real_escape_string($_GET['query']));
            }

            break;
    }

    function
getPage($id) {
        $result = mysql_query("SELECT title, body FROM pages WHERE id = $id");
        $res = mysql_fetch_assoc($result);
        print "<h1>" . $res['title'] . "</h1>" . $res['body'];
    }

    function
search($query) {
        $result = mysql_query("SELECT title FROM pages WHERE title like '%$query%' OR body like '%$query%'");
        print "<ul>";
        while($res = mysql_fetch_assoc($result)) {
            print "<li>" . $res['title'] . "</li>";
        }

        print "</ul>";    
    }

?>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 16/01/2015 12:42:00 door - Ariën -
 
PHP hulp

PHP hulp

05/05/2024 10:42:47
 
Henk de Vriep

Henk de Vriep

16/01/2015 10:51:51
Quote Anchor link
Ik zou zo niet zien waarom dit niet veilig is. Je kunt die query omzetten in een mysqli_query of een PDO query. real escape zorgt er voor dat er bijvoorbeeld geen single quotes gebruikt kunnen worden waardoor je argument in de query open wordt gebroken.
 
Alex Bakker

Alex Bakker

16/01/2015 10:58:04
Quote Anchor link
Henk, bedankt voor je reactie.
de url is https://ditisdesite.com/sql/fbe1b52c33b6fe10b2ebbe068749c1c1/index.php?cmd=show&id=1

het script wordt gecontroleerd met sql injectie met id = 2234 OR 1=1
 
Ward van der Put
Moderator

Ward van der Put

16/01/2015 11:36:45
Quote Anchor link
Deze query kun je beter dichttimmeren met een cast naar een integer:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$result
= mysql_query('SELECT title, body FROM pages WHERE id = ' . (int)$id);
?>


Hier heeft mysql_real_escape_string() geen zin: je zoekt niet naar een string, dus maak er gewoon een integer van.

Verder kun je (of eigenlijk: moet je) beter overstappen op MySQLi of PDO.
 
Henk de Vriep

Henk de Vriep

16/01/2015 12:32:41
Quote Anchor link
Wat ik ook wel eens doe is het volgende gecombineerd met jou voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function getPage($id) {
    if(is_numeric($id)){
        $result = mysql_query("SELECT title, body FROM pages WHERE id = $id");
        $res = mysql_fetch_assoc($result);
        print "<h1>" . $res['title'] . "</h1>" . $res['body'];
    }
else{
        //404 error of iets dergelijks, geen php foutmeldingen in ieder geval
    }
}

?>


edit: bracket vergeten...
Gewijzigd op 16/01/2015 13:49:01 door Henk de Vriep
 
Ward van der Put
Moderator

Ward van der Put

16/01/2015 12:45:09
Quote Anchor link
Dan wordt de query echter ook uitgevoerd bij een float zoals 1.2.
Ook hier kun je beter (int)$id in de query steken.
 
Henk de Vriep

Henk de Vriep

16/01/2015 13:09:55
Quote Anchor link
Ward van der Put op 16/01/2015 12:45:09:
Dan wordt de query echter ook uitgevoerd bij een float zoals 1.2.
Ook hier kun je beter (int)$id in de query steken.


scherp inderdaad, niet zo gauw aan gedacht!
 
Alex Bakker

Alex Bakker

16/01/2015 13:27:46
Quote Anchor link
Henk de Vriep op 16/01/2015 12:32:41:
Wat ik ook wel eens doe is het volgende gecombineerd met jou voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function getPage($id) {
    if(is_numeric($id)){
        $result = mysql_query("SELECT title, body FROM pages WHERE id = $id");
        $res = mysql_fetch_assoc($result);
        print "<h1>" . $res['title'] . "</h1>" . $res['body'];
    else{
        //404 error of iets dergelijks, geen php foutmeldingen in ieder geval
    }
}

?>


Als ik dit gebruik krijg ik "Error HTTP Error 500: Internal Server Error"
dit is een error van het geautomatiseerde systeem wat de integriteit van de pagina controleert.
 
Ward van der Put
Moderator

Ward van der Put

16/01/2015 13:40:28
Quote Anchor link
Er ontbreekt een } in } else {.
 
Alex Bakker

Alex Bakker

16/01/2015 15:08:21
Quote Anchor link
top!

nu nog met deze foutmelding aan de slag gaan.

MISLUKT: controleren op sql injectie met query = bla' OR 1=1 #

maar jullie hebben mij al enorm geholpen!

ontzettend bedankt.
 
Ward van der Put
Moderator

Ward van der Put

16/01/2015 15:44:42
Quote Anchor link
Dat kan erop wijzen dat je bijvoorbeeld hier onvoldoende controles op $query uitvoert:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function search($query) {
    $result = mysql_query("SELECT title FROM pages WHERE title like '%$query%' OR body like '%$query%'");
    print "<ul>";
    while($res = mysql_fetch_assoc($result)) {
        print "<li>" . $res['title'] . "</li>";
    }

    print "</ul>";    
}

?>

Dat kun je bijvoorbeeld zo oplossen:
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
<?php
function search($query) {
    // We hebben een niet-lege string nodig
    if (!is_string($query) || empty($string)) {
        return false;
    }


    // String escapen
    $query = mysql_real_escape_string($query);
    
    $result = mysql_query("SELECT title FROM pages WHERE title like '%$query%' OR body like '%$query%'");
    if (mysql_num_rows($result) > 0) {
        echo '<ul>';
        while ($res = mysql_fetch_assoc($result)) {
            echo '<li>' . $res['title'] . '</li>';
        }

        echo '</ul>';
    }
}

?>
Gewijzigd op 16/01/2015 15:55:08 door Ward van der Put
 
- SanThe -

- SanThe -

16/01/2015 15:51:03
Quote Anchor link
mysql_escape_string($query); => mysql_real_escape_string($query);
 
Ward van der Put
Moderator

Ward van der Put

16/01/2015 15:55:45
Quote Anchor link
Dank je, SanThe, ik heb het voorbeeld aangepast.
 
Alex Bakker

Alex Bakker

20/01/2015 10:17:17
Quote Anchor link
Bedankt voor jullie reacties.

als ik het laatste script gebruik, krijg ik de foutmelding dat de pagina niet gelijk is gebleven.
deze foutmelding kreeg ik niet bij het eerste script van Ward:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function search($query) {
    $result = mysql_query("SELECT title FROM pages WHERE title like '%$query%' OR body like '%$query%'");
    print "<ul>";
    while($res = mysql_fetch_assoc($result)) {
        print "<li>" . $res['title'] . "</li>";
    }

    print "</ul>";    
}

?>


Toevoeging op 20/01/2015 10:26:15:

oefening is opgelost met jullie hulp.
Bij $id heb ik de oplossing gebruikt van Henk.
Bij $query de eerste oplossing van Ward.

Samen werkte perfect.

Nu op mijn gemak bekijken hoe het script precies werkt.

Bedankt voor jullie hulp en tijd.
Gewijzigd op 20/01/2015 10:17:48 door Alex Bakker
 



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.