mysql inject

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

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 »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. 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, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

Bekijk vacature »

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »
Stefan iemand

Stefan iemand

29/07/2011 18:39:47
Quote Anchor link
Hallo,
dus ik ben bezig met een registratie formuliertje te maken,
mijn vorige, was niet bestend tegen mysql inject,
nu is mijn vraag: is dit goed genoeg?

$gebruikersnaam = mysql_real_escape_string($_POST['gebruikersnaam']);
$email = mysql_real_escape_string($_POST['email']);
$email2 = mysql_real_escape_string($_POST['email2']);
$referral = mysql_real_escape_string($_POST['referral']);
 
PHP hulp

PHP hulp

25/04/2024 09:02:52
 
Bart V B

Bart V B

29/07/2011 18:50:20
Quote Anchor link
nee,

Je maakt nu overbodige variabelen aan.

Je kan beter de $_POST variabelen meteen in je query zetten.
Scheelt een berg debuggen als je er een verkeerd tikt. :P

Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$result
= "INSERT INTO blaat(gebruikersnaan,
                             email
                            )
                            VALUES('"
.mysql_real_escape_string($_POST['gebruikersnaam'])."',
       '"
.mysql_real_escape_string($_POST['email']).'")
       "
;
?>

enz..
 
Cake Masher

Cake Masher

29/07/2011 18:55:11
Quote Anchor link
Bart, je hebt gelijk, maar denk niet dat dat zijn vraag was.

Ik zou de tip (persoonlijk) van Bart opvolgen, maar zoals je het nu hebt is het voor zo ver ik weet redelijk veilig tegen mysql injecties.

De tip van Bart is voor minder type werk etc. maar 't hoeft niet (voor als je dat prettiger vind).
 
Stefan iemand

Stefan iemand

29/07/2011 19:01:37
Quote Anchor link
maar ik ben php aan het leren, en ik vind dat dit het overzichtelijker maakt
toch bedankt :)
 
Cake Masher

Cake Masher

29/07/2011 19:05:43
Quote Anchor link
Precies.
Zolang je zelf maar snapt wat je aan 't doen bent.
 
- SanThe -

- SanThe -

29/07/2011 19:07:50
Quote Anchor link
Stefan iemand op 29/07/2011 19:01:37:
maar ik ben php aan het leren, en ik vind dat dit het overzichtelijker maakt
toch bedankt :)


Dat vind ik dus juist niet. Jij maakt nieuwe $vars aan waarvan niet duidelijk is of deze veilige inhoud hebben of niet. Bij $_POST-vars weet je dat die niet veilig zijn. Dat geeft mijns inziens duidelijkheid. Gebruik gewoon de mysql_real_escape_string() direct in de query om de $_POST-vars te beveiligen. Je ziet dan precies wat je aan het doen bent. Lijkt mij het meest overzichtelijk.
 
Bart V B

Bart V B

29/07/2011 19:13:23
Quote Anchor link
Stefan iemand op 29/07/2011 19:01:37:
maar ik ben php aan het leren, en ik vind dat dit het overzichtelijker maakt
toch bedankt :)


uiteraard staat het vrij om te het op die manier te doen.
Maar als je applicatie wat groter word, dan word het al een stuk lastiger.
 
Obelix Idefix

Obelix Idefix

29/07/2011 19:18:39
Quote Anchor link
Stefan iemand op 29/07/2011 19:01:37:
maar ik ben php aan het leren, en ik vind dat dit het overzichtelijker maakt
toch bedankt :)


Lijkt me juist dat je dan alle tips die je krijgt ter harte neemt en je dingen gelijk goed aanleert. ;)
 
The Force

The Force

29/07/2011 19:44:53
Quote Anchor link
Veilig voor SQL injectie: ja. Veilig voor XSS aanvallen: nee. Wil je één van de variabelen op een later moment weer op het scherm weergeven dat moet je met htmlentities of strip_tags zorgen dat er geen XSS of CSRF aanvallen gedaan kunnen worden.
 
- SanThe -

- SanThe -

29/07/2011 19:49:19
Quote Anchor link
@The Force: Kan je daar wat meer over vertellen? Voorbeeldje misschien?
 
The Force

The Force

29/07/2011 20:32:06
Quote Anchor link
- SanThe - op 29/07/2011 19:49:19:
@The Force: Kan je daar wat meer over vertellen? Voorbeeldje misschien?


Er zijn allerlei manieren om XSS aanvallen te plegen. XSS staat voor Cross Site Scripting (de X omdat het onderscheid te kunnen maken tussen Cascading Style Sheets en deze vorm van aanvallen). Wat er in feite gebeurd is dat de aanvaller code op de website kan uitvoeren. Daardoor kan hij gegevens als de session ID stelen (omdat de code uitgevoerd wordt op het domein van de website die aangevallen wordt).

Stel je hebt een gastenboek en een gebruiker vult het volgende in:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<script type="text/javascript">
alert("XSS");
</script>


Je doet daar vervolgens mysql_real_escape_string overheen zodat je dat netjes in de database kan opslaan. Maar als je vervolgens alle gastenboekberichten op de website weergeeft dan wordt deze code gewoon uitgevoerd. Er zijn honderden manieren om een XSS aanval te plegen (zie http://ha.ckers.org/xss.html voor een overzicht).

Met XSS kan je sessies van mensen stelen (door de cookie met het sessie id via javascript op te vragen. Als die sessie id in zijn cookie plaatst dan is hij plots ingelogd. Je hebt (omdat je met javascript de DOM kan bewerken) oneindig veel mogelijkheden om de website zo aan te passen als je wilt. Je zou een inlogform kunnen toevoegen aan de website, enzovoorts. Dat overkwam ook de IB groep: http://www.automatiseringgids.nl/it-in-bedrijf/beheer/2011/23/opnieuw-lek-in-site-studiefinanciering.aspx .

Leesvoer: hier is een XSS cheat sheet: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

Wat kan je er tegen doen? Je kan alle tags strippen (met strip_tags) of tekens vervangen door HTML entities (htmlentities). Je ontneemt alleen de gebruiker de mogelijkheid om via HTML een plaatje in hun gastenboekbericht te zetten. Je kan bij strip_tags wel aangeven dat 'img' wel toegestaan is, maar dat maakt je website weer gevoelig voor een aanval als deze:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img src="javascript:alert('onveilig!');">


Gebruik van strip_tags is dus enkel veilig als je de gebruiker normale tekst wilt laten schrijven of een beperkt aantal HTML tags wil toestaan. Tags als '<b>', '<i>' en '<u>' zijn uiteraard niet gevoelig voor XSS. htmlentities voorkomt het gebruik van alle HTML (maar zet deze om in veilige tekens inplaats van dat het deze weghaalt). Een andere optie is BB code maar die kan (indien niet goed gefilterd) ook met XSS aangevallen worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[img]http://badwebsite.com/xss.js[/img]


Je kan tot slot een XSS filter gebruiken om XSS tegen te gaan en tegelijkertijd de gebruiker in staat te stellen alle HTML te gebruiken zolang deze niet als verdacht aangemerkt wordt.

Edit: strip_tags schijnt niet alle vormen van XSS tegen te gaan. Zie http://htmlpurifier.org/comparison#striptags
Gewijzigd op 29/07/2011 23:49:13 door The Force
 
- SanThe -

- SanThe -

29/07/2011 20:38:23
Quote Anchor link
@The Force: Dank je voor deze heldere en uitgebreide uitleg. Die links ga ik ook nog bekijken (moet nu weg).

See You.
 
Bart V B

Bart V B

29/07/2011 23:15:35
Quote Anchor link
Je kan natuurlijk ook nog gebruik maken van de php filter opties.

vb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL))
  {

    echo 'E-Mail is not valid';
  }

else
  {
    echo 'E-Mail is valid';
  }

?>


Maar goed, dat gaat misschien voor de TS nog even te ver.
Wat leesvoer, om inspiratie op te doen voor invoer validatie:
http://id2.php.net/manual/en/book.filter.php
 
Joren de Wit

Joren de Wit

30/07/2011 11:28:23
Quote Anchor link
Ik ben het niet eens met het gebruik van mysql_real_escape_string() in de query, zoals meerdere malen in dit topic aangeraden wordt. Het is absoluut een persoonlijke keuze die je maakt en het een is niet meer of minder veilig dan het ander, maar op het punt van overzichtelijkheid van je script valt er wel e.e.a. over te zeggen.

Als je in een script veel queries uitvoert of als je zeer lange queries nodig hebt, is het vaak al lastig genoeg om dat overzichtelijk in de code weg te schrijven. Het meerdere malen extra toevoegen van mysql_real_escape_string() functies in de queries komt overzichtelijkheid dan absoluut niet ten goede. Bovendien zou je de functie wel eens overbodig vaak nodig kunnen hebben als je dezelfde variabele in meerdere queries gebruikt.

Mijn redenatie is dan ook altijd dat $_POST, $_GET, $_COOKIE en (sommige) $_SERVER variabelen per definitie niet veilig zijn voor gebruik in een query. Variabelen die ik in mijn script zelf een naam gegeven heb, zijn dan per definitie wel. Op die manier weet ik zeker dat variabelen die ik gebruik in een query geen mogelijkheid tot sql injectie opleveren. En op deze manier weet ik ook zeker dat mijn queries overzichtelijk(er) blijven en ik mysql_real_escape_string() nooit dubbel gebruik...

Om antwoord te geven op de vraag van de TS: houd het volgende in gedachte:
- Voor invoer in de database is het gebruik van mysql_real_escape_string() over variabelen voldoende. Andere functies heb je niet nodig.
- Bij het genereren van output moet je nadenken over het formaat waar het in komt te staan, afhankelijk daarvan zul je functies als htmlentities(), nl2br(), etc. willen gebruiken.

Tenslotte, wil je hier helemaal niet meer over na hoeven te denken, kijk dan eens naar het gebruik van prepared statements bij het gebruik van PDO...
 



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.