mysql inject

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Applicatiebeheerder

We zoeken voor deze functie een absolute kei op het gebied van SQL, Power BI, .NET Core, EDI, API en ERP-systemen. De ideale Applicatiebeheerder ziet het als een uitdaging om ook zelf de juiste oplossingen te bedenken en te bouwen en durft daarbij out-of-the- box te denken. Je bent communicatief vaardig en pragmatisch en weet met een natuurlijke drive de vertaling te maken van onze operatie naar gebruiksvriendelijke oplossingen voor interne en externe klanten. Om zo de spreekwoordelijke spil te zijn tussen mens en applicatie. Applicatiebeheerder Breda, 36-40 uur per week Herkenbaar? Lees dan verder wat je als Applicatiebeheerder gaat

Bekijk vacature »

Mendix Advanced Developer (NL)

Mendix Advanced Developer (NL) Den Haag HBO/WO IT Professional "Als Mendix Advanced Developer impact maken op de groeiende E-commerce markt met onze logistieke software en onze kritieke logistieke keten. Je doet dit door ontwikkeling en uitbreiding van onze Mendix Cloud omgeving, waarbij je complexe business processen vertaalt naar kritieke Mendix applicaties.". Wat ga je doen? PostNL is becoming a postal tech company Als Mendix Advanced Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead, Mendix Developers en Solution Consultants. Wij zetten Mendix in voor kritieke processen waarbij applicaties optimaal moeten performen om dagelijks rond de

Bekijk vacature »

Lead Developer

Telecats is op zoek naar een Lead Developer Functie omschrijving Je werk als lead developer Als lead developer maak je onderdeel uit van het team van software architecten, lead developers en software engineers en ben je betrokken bij de doorontwikkeling van de producten van Telecats. Telecats helpt klanten met het optimaliseren van hun klantcontact, van telefonie tot het slim toepassen van spraaktechnologie en machine learning. Binnen Telecats wordt onder andere gewerkt met Java, Spring, Maven en Angular. Telecats werkt onder andere samen met een remote team van software developers. Als contactpersoon van dit remote team zorg je voor het afstemmen

Bekijk vacature »

Application Developer Tech Lead

We’re Hiring! A UPS Application Developer Tech Lead *REMOTE WORK POSSIBLE FOR THIS ROLE As a Tech Lead Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life cycle activities, e.g. analysis, technical requirements, design, coding, testing and the implementation of software. Working in our Europe development center in Eindhoven means working in an international team with onsite people as well as

Bekijk vacature »

Developer / Full Stack

Bedrijfsomschrijving Voor een technisch bedrijf in regio Den Bosch zijn wij op zoek naar een Software Developer. Het betreft een bedrijf dat IT oplossingen ontwikkelt voor hun klanten, bestaande uit ruim 50 medewerkers, verdeeld over verschillende teams. Het is een platte organisatie met een vlotte besluitvorming, een informele cultuur en veel passie voor het vak. Als Developer werk je samen in een development subteam dat bestaat uit ongeveer 7 personen. Je werkt samen met developers, business analisten en een projectleider. Samen werken jullie aan klantspecifieke oplossingen waarmee processen geautomatiseerd worden, processen met elkaar verbonden worden of waarmee het gebruik van

Bekijk vacature »

Java Developer / Redesign / Complex / Overheid

Bedrijfsomschrijving Bij deze overheidsinstantie zal je terecht komen in een DevOps team van 5 man/vrouw groot. 4 daarvan houden zich bezig met het (door)ontwikkelen van de applicaties en 1 iemand is verantwoordelijk voor het testwerk. Echter, doordat ze steeds meer geautomatiseerd testen en richting CI/CD willen gaan, zal jij je daar ook zeker mee gaan bemoeien! Zoals gezegd kom je in een erg complexe omgeving terecht. Dit heeft voornamelijk te maken met het feit dat je met diverse Europese lidstaten en veel verschillende componenten te maken hebt. Dit maakt het daardoor erg uitdagend, maar niet minder leuk! Daarnaast zijn zij

Bekijk vacature »

Front-End Developer Design System

Samen met andere developers en designers bij Coolblue maak jij onze webshop elke dag een beetje beter om zo onze klanten blij te maken. Wat doe je als Front-End Developer Design System bij Coolblue? Bij Coolblue speelt het Design System team een belangrijke rol in het garanderen van de beste klantreis. Het team werkt samen met Designers en Developers om een ​​verzameling tried and true bouwstenen, patronen en richtlijnen op te bouwen. Je werkt aan de gebruiksvriendelijkheid van onze webshop en bent ervan overtuigd dat mooi design voor iedereen toegankelijk moet zijn. Je krijgt energie van het bedenken van creatieve

Bekijk vacature »

Full-Stack Developer

Bedrijfsomschrijving The organization is one of the big ones in the field of performance marketing. They are known as an organization that builds high-quality software and algorithms. The software and algorithms are used with organizations to increase sales/branding at peak times. The organization is not known as the cheapest in the market but the solution they build works so well that they have large customers worldwide. The organization has experienced tremendous growth in recent years and is therefore looking to strengthen its development team. As a Fullstack Software Developer you will be working in the Tech Team. The cool thing

Bekijk vacature »

Medior/Senior PHP Developer / Marketing / Impact

Bedrijfsomschrijving Deze informele organisatie brengt campagnes naar ongekende grote hoogtes! Jij kan als PHP Developer echt impact maken voor klanten en hun marketing succesvoller laten worden. Dat door je voor bekende organisaties zoals de NS, Peugeot, Achmea, KvK, Eneco en Miele. Binnen dit bedrijf heerst er een informele, plezierige en open sfeer. Bij onze opdrachtgever ligt er veel aandacht op persoonlijke ontwikkeling. Je gaat hier namelijk vrijheid krijgen om op je eigen manier invulling te geven aan je werk, maar je kan altijd op je collega’s terug kunnen vallen voor advies en tips. Functieomschrijving In de functie van PHP Developer

Bekijk vacature »

.NET Developer / C#

Bedrijfsomschrijving werken bij een organisatie waar je met het volgende in aanraking komt: High-intensity dataverkeer, meer dan 2,7 miljard berichten per jaar; Development aan .NET applicaties die maandelijks miljoenen euro's verwerken; Salaris als developer tot bijna 70.000 euro op jaarbasis; Geen partij in de omgeving van Tilburg die zo'n complex .NET applicatielandschap heeft; Werken aan meer dan 50 diensten, verdeeld over 10 Scrum teams; Focus op o.a.: C# en ASP.NET in een Agile organisatie; Elk kwartaal een week lang verplicht met nieuwe technieken/tooling werken; Meer dan 40 ervaren .NET ontwikkelaars als collega's; Mogelijkheid om 32 of 36 uur te gaan

Bekijk vacature »

Dynamics CRM / Developer

Bedrijfsomschrijving Als onderdeel van een grote IT-dienstverlener is deze organisatie ontstaan en is nu gegroeid tot organisatie van bijna 30 man groot. Iedereen binnen deze organisatie houdt zich bezig met het ontwikkelen, beheren, onderhouden van bedrijfskritische applicaties. In tegenstelling tot de moederorganisatie, werken de medewerkers bij deze organisatie gemiddeld drie dagen in de week gewoon op het eigen kantoor in Utrecht. Mede hierdoor heerst er een erg informele sfeer waardoor jij je binnen no-time thuis voelt! De organisatie staat op het punt om een heel nieuw team met specialiteit Dynamics CRM op te tuigen. Nee, je hoeft zeker nog geen

Bekijk vacature »

Stage Web Developer

Job description You are partly responsible for the development of the Front-end and/or Back-end of Nibblr. Depending on your qualities, you will be deployed for front-end or back-end activities. We prefer to train you as a full-stack developer, as the developers in the team are. You work on custom solutions using the latest techniques. Within the product development team, you mainly work under the supervision of the Lead developer and interaction / visual designer who takes care of the creative and interaction side. You work together with other developers on new features. You also think along to improve the user

Bekijk vacature »

Medior PHP Developer

Bedrijfsomschrijving Voor een leuke en klein bedrijf ben ik op zoek naar Medior PHP developer. Je komt terecht in een leuk, gezellig en hecht team van ambitieuze ontwikkelaars en designers. Je gaat werken aan hun eigen ontwikkelde platform die gebruikt wordt door freelancers die een soort payrollconstructie aangaan. Het platform is zo succesvol geworden dat ze daarom per direct op zoek zijn naar een PHP Developer. Hun motto is Work hard, play hard.... maaaaaaaaar elke dag met veel plezier aan het werk! Functieomschrijving We zoeken een PHP developer die het platform samen met het team naar grotere hoogtes kan laten

Bekijk vacature »

Platform & Device Developer

You will work on many dynamic projects as a Platform & Device Developer, in which you can express your creativity. How do I become a Platform & Device Developer at Coolblue? As Platform & Device Developer, you are responsible for building and developing the platforms on which all Coolblue employees work. You are inquisitive and never shy away from a challenge. You like to know why certain systems or processes have been developed the way they have and conduct some research to improve them. You talk to different stakeholders and developers to see if your new solution works. In this

Bekijk vacature »

Creatieve front-end ontwikkelaar gezocht in Overij

Bedrijfsomschrijving Onze klant is een dynamische omgeving die gelooft dat hun full-service aanpak echt het verschil kan maken voor hun opdrachtgevers. Met die overtuiging werken developers van deze organisatie aan mooie opdrachten voor uiteenlopende bedrijven. Dit gebeurt in klantteams die per project samengesteld worden, met deze directe collega’s zal je in sommige gevallen ook op locatie bij de klant werken. Binnen de organisatie werken bijna 20 collega’s met allemaal een eigen specialisme. Zo wordt er voor een project ook samengewerkt met online marketeers en designers, op die manier wordt er een complete online oplossing van hoog niveau aan de klant

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

17/04/2021 02:09:17
 
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.