Geparametriseerde query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

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 »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

Bekijk vacature »

E-Identity Developer met Projectleider Kwaliteiten

Functieomschrijving Voor de kamer van koophandel zijn we op zoek naar een E-Identity developer met projectleider kwaliteiten. Voor deze opdracht zoekt KVK een Informatieanalist met Technisch Projectleider en ICT developer kwaliteiten, met kennis van E-identity. We zoeken in de breedte en niet specifiek in de diepte qua skillset. Een Junior Projectmanager, een Junior Informatieanalist, een Junior Developer (full stack), een Junior Designer en een Junior ICT architect ineen, met een sterk gevoel van stakeholder management en planning vaardigheden. Door de internationale setting, én de realisatie van ontsluiting van en naar basisregisters toe zijn wij op zoek naar enige ervaring binnen

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 »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

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

27/12/2024 06:33:51
 
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.