Geparametriseerde query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

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 »

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 »

Front-end developer (medior/senior)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

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 »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

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 »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

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 »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

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 »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

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

25/04/2024 18:25:10
 
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.