Veiligheid: $_POST['...']

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET developer

Heb je ervaring in ontwikkelen van applicaties m.b.v. C# en ben je een Teamplayer met goede communicatieve vaardigheden? Dan ben jij de C# .NET Developer die we zoeken! C# .Net Developer voor ons kantoor in Rijnsburg Over de positie: Je komt te werken in een gezellig en informele scrumteam en bouwt mee aan de ontwikkeling van een nieuwe applicatie voor groothandelaren in de bloemen- en plantenbranche. Hierbij krijg je de mogelijkheid jezelf te ontwikkelen in de richting jij wilt! Front end, back end of full stack. Bij ons heb je een brede functie die je langs wisselende onderdelen van het

Bekijk vacature »

Senior Java Developer Role in Amsterdam

ORANGE QUARTER ARE CURRENTLY WORKING WITH ONE OF AMSTERDAM’S MOST INNOVATIVE TECH CONSULTANCIES WORKING ACROSS THE HEALTHCARE, BANKING, IOT AND MOBILE SECTORS. THEY PROVIDE INNOVATIVE SOFTWARE SOLUTIONS USING JAVA TECHNOLOGIES ACROSS THESE SECTORS AND ARE LOOKING FOR A SENIOR JAVA DEVELOPER TO JOIN THEIR TEAM AND IMPACT THESE CHALLENGING AND EXCITING PROJECTS. WHAT TO EXPECT: QUALITY IS ALWAYS FIRST WITH THIS COMPANY AND THEY DO NOT OPERATE WITHIN THE USUAL TRADE-OFFS ASSOCIATED WITH CONSULTANCY WORK. YOU’LL BE WORKING ALONGSIDE SENIOR ENGINEERS ONLY IN CROSS-FUNCTIONAL SCRUM TEAMS MADE UP OF FRONT-END, BACK-END AND QA AND DEVOPS ENGINEERS. ALONG WITH SPENDING EVERY

Bekijk vacature »

Fullstack C# developer (web, mobile, desktop) bij

Waarom jij bij het team past Werk jij graag mee aan het ontwikkelen van nieuwe functionaliteiten van een uitgebreid en complex Enterprise Resource Planning voor een internationale klant? En ontwikkel je dit graag in C# samen met een klein, hecht en gezellig team? Dan ben jij degene die we zoeken! Onze klant maakt Enterprise Resource Planning-software voor bedrijven in verschillende branches. Wegens de groei van hun grootste klant, zoeken zij naar een nieuwe collega die deze klant op zich kan nemen. Samen met de projectleider ontwikkel je specifiek voor deze internationale en groeiende klant verschillende functionaliteiten; zowel ad hoc als

Bekijk vacature »

Embedded Developer / Junior / Autonome auto

Functieomschrijving Ben jij een Embedded Developer met een passie voor techniek? Lijkt het jou gaaf om binnen embedded realtime systemen en zo low level mogelijk te ontwikkelen? Lees dan snel verder! Het programmeren en modificeren van embedded software; Het werken in projectteams; Het verlenen van service voor de ontwikkelde embedded software. Functie-eisen Hbo werk- en denkniveau; Een afgeronde technische opleiding is een pre; Kennis van programmeertalen gericht op embedded software (C) Goede beheersing van de Nederlandse en Engelse taal. Bedrijfsomschrijving Deze organisatie is wereldwijd toonaangevend en succesvol producent van professionele hardware die o.a. de veiligheid van de mens garandeert. De

Bekijk vacature »

Senior iOS Developer vacature

Je bent innovatief. Je bent creatief. Jij gaat voor een topbaan. Mobile apps ontwerpen, uitwerken en realiseren, dat is jouw passie! Met grote toewijding richt jij je dan ook op een app waarmee consumenten met een gezichtsscan betalen. Of je stort je je op een app die de temperatuur in huis op afstand kan regelen. Het spreekt voor zich dat jouw apps top of the bill zijn als het gaat om gebruiksvriendelijkheid en veiligheid. Ze hebben impact. Je voelt je als een vis in het water in een iOS-omgeving maar, veelzijdig als je bent, kun je ook met andere platforms

Bekijk vacature »

Java Custom Software Developer

Jouw rol Als Java developer houd jij van uitdagende maatwerk oplossingen. Het liefste bouw je aan aan complexe en grootschalige oplossingen. Laatst zag je bijvoorbeeld nog een slimme oplossing voorbij komen die je graag zou willen uitwerken. Moet je daarvoor nieuwe technologie leren kennen, dan school jij jezelf bij. Soms moet je je collega's en de klant overtuigen om jouw idee te omarmen. Als jij dan het door jou aangebrachte idee ziet draaien dan kijk jij er alweer naar uit om de volgende oplossing te bouwen. Plaats in de organisatie Binnen onze Custom Software Development practice (CSD) werken we gezamenlijk

Bekijk vacature »

Traineeship Pega Developer MKB Brandstof & BPM

Heb je een ICT gerelateerde HBO/ WO opleiding afgerond, interesse in Business Process Management, vind je persoonlijke ontwikkeling belangrijk en wil je deel uitmaken van MKB Brandstof? Dan is het Traineeship tot Pega Developer van MKB Brandstof en BPM Company iets voor jou! Met een opleidingsprogramma en begeleiding op maat –zowel vanuit MKB Brandstof als BPM Company- zorgen we ervoor dat jij je optimaal kan ontwikkelen. De eerste 2 maanden ben je bezig met het behalen van je Pega certificeringen (Certified System Architect (CSA) en Certified Senior System Architect (CSSA)). Hierin zal je door BPM Company worden begeleid. Daarna ga

Bekijk vacature »

C++ / Developer / Complex / Architectuur

Functieomschrijving Wil jij als C++ Developer meebouwen aan complexe systemen die levensreddende operaties ondersteunen? Ben jij de C++ Developer die zijn hand niet omdraait voor de meest uitdagende C++ vraagstukken? Dan is deze C++ rol jou op het lijf geschreven! Je wordt verantwoordelijk voor de codegeneratie en de onderliggende architectuur; Je zorgt ervoor dat de frameworks en architectuur continue doorontwikkeld wordt en dat nieuwe technologieën zoals Big Data en machine learning in de architectuur opgenomen worden; Creëren van robuuste, betrouwbare en veilige omgeving; Maken, onderhouden en doorontwikkelen van onze in C++ ontwikkelde architectuur in een Linux omgeving. Functie-eisen Hbo-gediplomeerd; Minimaal

Bekijk vacature »

JUNIOR AUTOMATION DEVELOPER

JUNIOR AUTOMATION DEVELOPER Heerlen Technology 13th month pay & Holiday allowance Bonus Program 26 holidays Training & Learning opportunities Laptop & Smartphone 32-40 hours p.w. As Junior Automation Developer within Accenture Heerlen you will be working on leading projects and apply new technologies on new business problems to create innovative solutions for our clients. Your job Your daily responsibilities include developing innovative (intelligent) automation solutions for several European clients. An example is creating smarter services which can automate administrative processes, business processes or solve any other new challenges our clients face (Robotics Process Automation). Within our office in Heerlen you

Bekijk vacature »

C-ARM Specialist

Wil jij werken voor high-profile klanten in de fascinerende markt van Energieleveranciers en Netbeheerders? Heb jij diepgaande kennis van ARM processen voor zowel Gas als Elektriciteit? Ben jij dé Specialist C-ARM die wij zoeken? C-ARM Specialist – Utilities Wat ga je doen? Als ARM specialist hou je, je bezig met het beheren van ARM systemen. Je werkt samen met je collega’s van het C-ARM beheerteam aan het borgen van complexe processen. Je analyseert en lost voorkomende incidenten op. Hiervoor is niet alleen een gedegen kennis van de ARM processen noodzakelijk, maar ook kennis van de ARM applicatie en uitstekende analytische

Bekijk vacature »

.Net Software Developer voor IT consultancy (.Net

Voor een groeiend ICT consultancy bureau in Haarlem & Leiden zijn we op zoek naar een ervaren .Net Back-end Developer. Een developer die bij klanten als het UWV, de Rabobank en Tata Steel applicaties designed, ontwikkelt en implementeert. Bijvoorbeeld een IT omgeving Cloud-ready maken, de IT security verhogen, applicaties naar .Net Core migreren en veel applicaties en functionaliteiten ontwikkelen met behulp van de nieuwste stack. Wat je gaat doen bij het MBK en multinationals: Ontwikkelen (greenfield) en onderhouden van .Net (C#) websites, applicaties en infrastructuren Cloud oplossingen bouwen Het opzetten van het technisch ontwerp en databases Een hoge diversiteit ervaren

Bekijk vacature »

Developer / Integratie / BizTalk / Qlikview

Functieomschrijving Heb jij als developer ervaring met integratieontwikkeling of zou jij je hier verder in willen verdiepen? Werk jij graag in een vooruitstrevende organisatie met een complexe omgeving? Reageer dan op deze vacature! Ontwikkeling binnen en beheer van BizTalk en Qlikview. Ontwikkelen van nieuwe datakoppelingen. Omzetting van Functioneel Ontwerp naar een Technisch Ontwerp. Ontwikkelen en beheren van SQL interfaces en webservices. Aanreiken en uitvoeren van verbetervoorstellen en proactief beheer. Waar nodig contacten onderhouden met externe leveranciers en interne klanten. Functie-eisen Je hebt HBO werk- en denkniveau. Je hebt ervaring met development (bij voorkeur .NET / BizTalk). Je hebt affiniteit met

Bekijk vacature »

Noordoost Java Developer vacature

Java Developer Noordoost Word onderdeel van een topteam met ervaren Java Developers. Loop voorop in de ontwikkelingen en help mee innoveren. Focus op Java Wij bouwen State of the Art applicaties met de nieuwste Java technologie en frameworks. Dit doen we door ons te richten op de open source-oplossingen binnen de wereld van Java, alle nieuwe ontwikkelingen te volgen en onze kennis te delen binnen onze eigen Java Community. Dit betekent bijvoorbeeld dat we aanwezig zijn op veel conferenties; Oracle Code One, Devoxx en JFall. We organiseren ook onze eigen collegiale sessies en hackatons waar we kennis en plezier combineren.

Bekijk vacature »

Full Stack Java Developer / Maven / Spring /Amster

Functieomschrijving Ben jij een Full Stack Java Developer die in het mooie Amsterdam wil werken, voor een bedrijf dat verantwoordelijk is voor verschillende soorten data en applicaties? Solliciteer dan nu! Ontwikkelen, uitbouwen en verbeteren van applicaties in Java 8; Sparren met de business en jouw SCRUM team aangaande functionaliteiten. Functie-eisen Je bent in het bezit van minimaal een MBO-diploma met HBO werk- en denk niveau; Je hebt ervaring met Java (8); Je hebt ervaring met Maven; Je hebt ervaring met Spring Framework; Je hebt bent bekent met Azure (PaaS/IaaS); Je hebt ervaring met JFS, Angular; Je hebt kennis van Messaging

Bekijk vacature »

Financiële grootmacht zoekt Senior .NET Devel

Functieomschrijving Als Senior .NET Developer kom je te werken aan zowel nieuwe als aan het onderhoud van bestaande applicaties. Dit doe je soms samen met collega's volgens de Scrum methode, maar soms ook alleen als het om kleinere projecten gaat. De software die je bouwt wordt gebruikt voor de interne bedrijfsvoering en voor het ondersteunen van klanten. Je kunt bijvoorbeeld denken aan software om kredietrisico's te analyseren. Het gaat hoe dan ook om complexe en zorgvuldig opgebouwde software. Je kunt hier dan ook rekenen op een goede inwerkperiode, waarin je goed begeleid wordt en waarin je je weg in de

Bekijk vacature »

Pagina: 1 2 volgende »

Sure Is

Sure Is

20/06/2011 13:26:04
Quote Anchor link
Hallo iedereen!
Ik gebruik in mijn script vaak $_POST['...'] om dingen van form in de database op te slaan.
Nu besef ik net dat, als iemand een eigen php-script maakt met daarop een form, hij de gegevens kan manipuleren.

Een voorbeeld:

Mijn code: add.php
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php $sql="INSERT INTO table (naam, plaats)
VALUES
('$_POST[myname]','$_POST[myplace]')"
; ?>

<form action="add.php" method="post">
<input type="hidden" name="myname" value=$usernaam>
<input type="hidden" name="myplace" value=$userplaats>
<input type="submit" value="Bewaar"></form>


Op het eerste zicht heeft de gebruiker geen optie om zelf de waarde van de naam en plaats te bepalen.
Maar als hij zelf een script runt, bv. dit:

Quote:
<form action="http://www.mijnwebsite.com/add.php" method="post">
<input type="hidden" name="myname" value="fake naam">
<input type="hidden" name="myplace" value="fake plaats">
<input type="submit" value="Bewaar"></form>


Dan zal mijn script daar niks mis zien, en die valse waarden in de table zetten. Dat mag natuurlijk niet!

Mijn vraag: hoe kan ik dit oplossen? Is $_POST['...'] een slechte manier om gegevens in een database te zetten?

Bedankt!
Gewijzigd op 20/06/2011 13:27:38 door Sure Is
 
PHP hulp

PHP hulp

29/01/2020 16:51:28
 
Johnno janssen

johnno janssen

20/06/2011 13:34:15
Quote Anchor link
je zou het script kunnen runnen via $_server['request_method']
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<? If ($_server['request_method']=="POST"){
}

?>


En dan haal je form action weg
Gewijzigd op 20/06/2011 13:35:46 door johnno janssen
 
TJVB tvb

TJVB tvb

20/06/2011 13:43:03
Quote Anchor link
@Johnno, jouw methode is goed maar helpt niet bij het probleem van Sure IS

@Sure Is, je moet de gegevens controleren en escapen voordat je het de databse in stopt.
Ook is het gebruik van hidden fiels om data door te geven altijd gevaarlijk. Je kunt ook sessie gebruiken.
 
Rolf -

Rolf -

20/06/2011 13:46:41
Quote Anchor link
Zo heb ik er nog nooit over nagedacht. Wat is dan inderdaad de veiligste oplossing?

@TJVB, er is toch ook een functie in je php.ini dat je kan blokkeren dat als er iets van een andere site komt, dit geblokkeerd wordt?
 
TJVB tvb

TJVB tvb

20/06/2011 13:54:41
Quote Anchor link
@Rolf, je moet je values escapen met (bij mysql) mysql_real_escape_string.
Die $username en $userpage komen ook ergens vandaan. (De manier hierboven klopt ook niet, je moet de variabelen buiten je html houden.)
 
Sure Is

Sure Is

20/06/2011 13:58:55
Quote Anchor link
Ik heb het nu zo:

Quote:
$naam1 = $_POST['myname'];

if(get_magic_quotes_gpc())
{
$naam1= stripslashes($naam1);

}
if($_POST['myname']!='')
{
$naam = mysql_real_escape_string($naam1);


$sql='INSERT INTO table (naam)
VALUES
("'.$naam.'")';
}


Maar probleem nog steeds niet opgelost...
Gewijzigd op 20/06/2011 13:59:15 door Sure Is
 
Mebus  Hackintosh

Mebus Hackintosh

20/06/2011 14:01:42
Quote Anchor link
@Sure Is, mysql_real_escape_string zou voldoende moeten zijn.
 
Sure Is

Sure Is

20/06/2011 14:01:59
Quote Anchor link
TJVB tvb op 20/06/2011 13:54:41:
Die $username en $userpage komen ook ergens vandaan. (De manier hierboven klopt ook niet, je moet de variabelen buiten je html houden.)

Off-topic: Sorry, beetje snel geweest bij overtypen :) , maar daar zit nu het probleem niet.



Toevoeging op 20/06/2011 14:03:05:

Mebus vg op 20/06/2011 14:01:42:
@Sure Is, mysql_real_escape_string zou voldoende moeten zijn.

Ik heb dit geprobeerd (zie code hierboven) maar een extern script kan nog steeds de gegevens manipuleren...
 
Rolf -

Rolf -

20/06/2011 14:03:39
Quote Anchor link
Mysql_real_escape_string zorgt er toch alleen voor dat er geen mysql-injection plaats kan vinden.

Als iemand vanaf zijn eigen site een script runt voor jouw formulier, kan hij op die manier toch ook b.v. captcha omzeilen?
 
- SanThe -

- SanThe -

20/06/2011 14:06:30
Quote Anchor link
Rolf van der Horst op 20/06/2011 14:03:39:
Als iemand vanaf zijn eigen site een script runt voor jouw formulier, kan hij op die manier toch ook b.v. captcha omzeilen?


Nee, daar wordt toch op gecontroleerd neem ik aan.
 
Sure Is

Sure Is

20/06/2011 14:08:17
Quote Anchor link
- SanThe - op 20/06/2011 14:06:30:
Rolf van der Horst op 20/06/2011 14:03:39:
Als iemand vanaf zijn eigen site een script runt voor jouw formulier, kan hij op die manier toch ook b.v. captcha omzeilen?


Nee, daar wordt toch op gecontroleerd neem ik aan.

Mijn script is wat ik gepost heb, dus ik denk niet dat ik hier op gecontroleerd heb... misschien is dat het probleem? Hoe doe ik dit?
 
Rolf -

Rolf -

20/06/2011 14:13:49
Quote Anchor link
Waarschijnlijk controleren dat er niet steeds vanaf hetzelfde ip een request komt
 
Sure Is

Sure Is

20/06/2011 14:22:16
Quote Anchor link
Ik vind het vooral raar dat ik dit nog niet ben tegen gekomen.
Bijna alle scripts die ik tegen kom zou je dan vrij eenvoudig kunnen manipuleren: even de source code checken, de form-data kopiëren, value's invullen naar wens, runnen op eigen server, et voila...!

(Voor de duidelijkheid: het gaat hier niet om geautomatiseerde spam-scripts (want die kan je omzeilen met een captcha) maar wel om scripts die er op uit zijn eigen gekozen values in de database te stoppen.)

Wat zie ik over het hoofd...? Het kan toch niet dat al die scripts zo onveilig zouden zijn?
 
Mebus  Hackintosh

Mebus Hackintosh

20/06/2011 14:25:45
Quote Anchor link
Ligt eraan welke php functies je gebruikt.. Als je met includes werkt en als deze afhankelijk zijn van een GET of POST waarden moet je deze goed controleren inderdaad.. Maar als ik zo kijk naar je script is het met gebruik van mysql_real_escape_string gewoon veilig.
 
Bram Boos

Bram Boos

20/06/2011 14:26:56
Quote Anchor link
Ik vraag me af waarom je hidden fields gebruikt?
 
Sure Is

Sure Is

20/06/2011 14:29:49
Quote Anchor link
Mebus vg op 20/06/2011 14:25:45:
Maar als ik zo kijk naar je script is het met gebruik van mysql_real_escape_string gewoon veilig.

Dat dacht ik ook, alleen heb ik het echte script eens op mijn website upgeload (eigendom van one.com), en het fake-script gerunt via mijn pc (via xampp) , en ik kan nog steeds via dat fake-script value's in mijn database droppen...
 
Bram Boos

Bram Boos

20/06/2011 14:32:04
Quote Anchor link
Zou je anders eens je volledige code willen posten van add.php?
 
Sure Is

Sure Is

20/06/2011 14:54:42
Quote Anchor link
add.php
Quote:
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
<?php
include('config.php');

$naam1 = $_POST['myname'];

    if(get_magic_quotes_gpc())
    {

        $naam1= stripslashes($naam1);
        
    }

if($_POST['myname']!='')
    {

        $naam = mysql_real_escape_string($naam1);


            $sql='INSERT INTO table (naam)
            VALUES
            ("'
.$naam.'")';
    }

    
?>


form.php (of deze code kan even goed bij add.php nog staan, maakt niet uit)
Quote:
<form action="add.php" method="post">
<input type="hidden" name="myname" value=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $usernaam; ?>
>
<input type="submit" value="Bewaar"></form>


Code is nog niet af, die $username moet nog bepaald worden, maar dat is niet zo belangrijk. Het gaat er mij gewoon om dat die value gemakkelijk kan veranderd worden met een extern script.

Het externe/fake/bedrogplegend script zou dan dit kunnen zijn:
bedrog.php
Quote:
<form action="http://www.mijnwebsite.com/add.php" method="post">
<input type="hidden" name="myname" value="Deze value bepaalt de bedrogpleger zelf">
<input type="submit" value="Bewaar"></form>


Als je dit bedrogplegend script runt op een andere server dan waarop http://www.mijnwebsite.com/add.php runt, post die alsnog die valse value's in de database van mijnwebsite.

(Het waarom van dit script is misschien een beetje raar, maar die hidden value's moeten uiteindelijk scores worden dat mensen behaalt hebben in een spel. Via het bedrogplegend script zou je zo je score kunnen manipuleren en omhoog trekken.)

Toevoeging op 20/06/2011 15:55:53:

Je kan dit door SESSION te gebruiken wel oplossen,
bv zo:

Quote:
$sql='INSERT INTO table (naam)
VALUES
("'.$_SESSION['naam'].'")';


en eerder die naam al in die session te steken.

Maar dat lijkt mij zo omslachtig? Of is dit echt wel dé manier om dit te voorkomen? Ik ben geen php-pro, maar het lijkt mij niet ondenkbaar om alsnog een extern script te schrijven dat die session kan beïnvloeden ofzo... maar ja.
Gewijzigd op 20/06/2011 15:01:37 door Sure Is
 
Danny van der Jagt

Danny van der Jagt

20/06/2011 18:35:06
Quote Anchor link
Hee,

Ik denk dat je voor die scores gewoon het beste session kan gaan gebruiken. Deze zijn (volgens mij) niet aan te passen van buiten jouw server om. En andere manier zou nog kunnen zijn om alles direct in je database te zetten(als je die gebruikt).

Maar even over die $_POST[], ik denk dat het slim is als je alleen aanpassingen van binnen uit je host/server toe laat. Ik ben er nog niet helemaal uit maar als je $_SERVER["SERVER_ADDR"] mee kan sturen met het form zonder dat ze de uitkomst van $_SERVER["SERVER_ADDR"] kunnen zien in je bron code zou het veilig moeten zijn. Deze ip kan je dan in je functie/class als eerste laten controleren met die van je eigen server/host. En dan alleen de rest van je script uit laten voeren als deze klopt. Ik heb het één en ander geprobeerd maar ik krijg alleen die $_SERVER["SERVER_ADDR"] niet tegelijk met het form ongezien verstuurd. Miscchien iemand een idee??
 
Sure Is

Sure Is

02/07/2011 13:23:34
Quote Anchor link
+1! Ik wil ook wel weten hoe je ervoor kan zorgen dat enkel dingen vanop het eigen ip toegelaten worden...
 
Gerhard l

gerhard l

02/07/2011 18:02:18
Quote Anchor link
Maar wat is je probleem? Je controleert je input toch nadat een formulier gepost is, dus uiteindelijk maakt het niet uit of ze van een andere site komen. En iemand zei captcha omzeilen, dit kan natuurlijk niet eh? Je maakt je captcha aan op het moment dat het formulier opent, en die wordt gecontroleerd nadat het is gepost, dus als je dan van een andere site komt is je captcha leeg en moet je hem altijd terug sturen lijkt mij..
 

Pagina: 1 2 volgende »



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.