Geparametriseerde query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

C#.NET developer

Functie Het development team bestaat momenteel uit vijf backend C#/.NET ontwikkelaars. Op dit moment zit één ontwikkelaar dedicated op de mobiele applicatie. Als team werk je samen aan het zelf ontwikkelde software platform. Dit bestaat uit zowel apps als websites. Om het systeem door meer dan honderdduizenden gebruikers wordt gebruikt is het bijna vanzelfsprekend dat de kwaliteit van het product hoog moet liggen. Het systeem bestaat uit drie projecten. Je werkt dus aan deze drie projecten waarbij de focus op z’n tijd verschuift. De technieken die worden toegepast zijn o.a. .NET Core, Xamarin, C# en MVC. Je zal dus met

Bekijk vacature »

Software Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

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 »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

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

26/05/2026 14:55:09
 
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.