mysql inject

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

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 »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

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 »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

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 .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Productontwikkelaar Food

Wat ga je doen Als Productontwikkelaar Food ga je nieuwe producten ontwikkelen en bestaande producten verbeteren. Je bent hierbij betrokken bij het gehele proces: van productconcept naar proefreceptuur, het realiseren va het product (op kleine schaal) en het testen van producten in een productieomgeving. Verder: Bewaak je de status van verschillende fases van productontwikkeling en lever je tijdig de benodigde data aan Ben je bezig met de optimalisatie van oude en nieuwe recepturen Begeleid of organiseer je proefsessies (sensorisch onderzoek) in het team en/of bij klanten Onderhoud je contacten met de klanten, leveranciers van grondstoffen e.a. externe partijen Houd je

Bekijk vacature »

Low Code Developer - Consultant

Functie omschrijving Wil jij fungeren als een spin in het web en samenwerken met klanten? Voor een leuke en interessante opdrachtgever in omgeving Leiden zijn wij op zoek naar een Low Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten en het leiden van projecten. Ben jij toe aan een nieuwe uitdaging en heb jij verstand van datamodellering en NO CODE Platformen? Lees dan snel verder! Bij deze rol horen de volgende werkzaamheden: Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform,

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. 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 Deze organisatie is

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

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

27/05/2026 02:57:07
 
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.