Veiligheid: $_POST['...']

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Informeel bureau zoekt Senior PHP developer

Functie Als senior PHP developer neem je het voortouw in ontwikkeltrajecten en ben je in staat werk uit te leggen aan collega’s om zo je kennis met hen te delen. Je deinst niet terug voor ingewikkelde projecten. Deze zie jij alleen maar als uit uitdaging. Je werkt doorlopend aan klantcases (en hierdoor je klant echt leert kennen), maar toch ben je afwisselend bezig. Dit alles in een vrije en ontspannen werksfeer, met een team van gelijkgestemde. Binnen de development teams werken ze met o.a. PHP, Laravel, React, Node, Elastic, Amazon AWS, JIRA, Solid, Domain-driven-design, Doctrine, Redis, docker, Kubernetes, CI, PHP

Bekijk vacature »

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Senior Front-end developer (React)

Functie Met een ontwikkelafdeling van ruim 20 collega’s is dit zo ongeveer de helft van alle medewerkers. De software(ontwikkeling) is dan ook de drijvende kracht binnen de organisatie. Ze werken aan het verbeteren dan de bestaande, maar zeker ook nieuwe producten. De software bestaat uit verschillende (React) webapplicaties, maar ook een mobile (React native) app. Hierdoor kom je met verschillende uitdagingen in aanraking en is Mobile kennis natuurlijk mooi meegenomen. De software wordt door vele duizenden professionals dagelijks gebruikt en bevatten grote hoeveelheden data. Aan het team de uitdaging om hierin de best mogelijke gebruiksvriendelijkheid neer te zetten door gebruik

Bekijk vacature »

Digital Agency is looking for PHP developers!

Functie The team currently has 20 colleagues, consisting of developers (front and backend) and the operations team, which also includes management and two scrum masters. They are looking for a PHP developer who is able to work independently. You will work in one of the three scrum teams and start working on a project for the customer. The interesting thing about this is that you do have variety in terms of work, but at the same time continuously work for existing customers. This also gives you the opportunity to really go into depth and develop innovative technical solutions. In terms

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

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

08/11/2024 19:54:00
 
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.