mysql inject

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

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 »

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Modern, innovatief en Informeel bedrijf waar veel mogelijk is Werken met diverse robot merken Meehelpen met inbedrijfstellingen bij de klant De organisatie Hier ga je aan de slag Dit groeiende bedrijf van totaaloplossingen in de automatisering van productieprocessen, is hoofdzakelijk actief in de Benelux. Vanuit het kantoor in regio Amersfoort worden veel oplossingen geboden in de vorm van robotica. Geen project is hetzelfde wat garant staat voor bijzonder veel afwisseling. De bedrijfsgrootte is ongeveer 80 man. Van gerobotiseerde machinebeladingen tot aan assemblage automatiseringen wordt vanuit krachtige engineering maatwerk equipment geleverd.

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Als PHP developer bijdragen aan beter onderwijs?

Functie Momenteel zijn ze op zoek naar een PHP developer die mee gaat werken aan de (door)ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js en

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »

Front end developer binnen het onderwijs

Functie Het doel van dit team is om te zorgen dat de studenten altijd op de hoogte zijn van relevante informatie en de mogelijkheid hebben om online vragen te stellen. Hiervoor hebben ze een portal ontwikkeld. De app is echt een greenfield project met een eigen inrichting middels cloud. De ontwikkeling wordt gedaan door gebruik te maken van oa. Javascript, React, CSS, Next.js, GraphQL in een Azure Cloud omgeving. Daarnaast gebruiken ze tooling als Figma, storybook, Jest en Github. De complexiteit in deze rol zit hem in het feit dat data uit verschillende bronsystemen komt waarbij er zowel gekoppeld wordt

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

03/11/2024 20:46:47
 
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.