Forum > Algemeen Forum

html-tips voor het maken van je site

(853 reacties. Pagina 35 van 86)
Moderator(s): Dré
Infected SoundsStandaard Lid
Uit: Nederland
Sinds: 24-2-2004
Laatste: 18-3-2008
Berichten: 295
24-1-2005 22:30
Hey jeroen, ik heb nu een probleempje met die php-code.

op dit stuk:
------------------------------------
include('_$REQUEST['pagina']');
------------------------------------

geeft hij een error: "Parse error: parse error, unexpected T_STRING"

de '_' en de '$' onwisselen heeft ook niet geholpen. Ik hoop dat je mij hiermee kan helpen.

Alvast bedankt, Joep
Thanx Dré !
Dj NoizStandaard Lid
Uit: België
Sinds: 20-8-2003
Laatste: 16-6-2006
Berichten: 357
24-1-2005 22:34
Neem hier eens een kijkje!
Being a dj is not just a job for me, it's my calling!
ReemskiVIP Lid
Uit: Nederland
Sinds: 22-10-2002
Laatste: 21-11-2024
Berichten: 1370
25-1-2005 01:05

Infected Sounds schreef:

include('_$REQUEST['pagina']');
Dit werkt niet. Enkele aanhalingstekens zorgen ervoor dat er enkel een string tussen kan staan, dus geen variabele, zoals je nu doet. Die mogen weg. Daarnaast MOET een variabele beginnen met $ en omdat het een superglobal is, na de $ een _ .
Dus je krijgt:

include($_REQUEST['pagina']);
Infected SoundsStandaard Lid
Uit: Nederland
Sinds: 24-2-2004
Laatste: 18-3-2008
Berichten: 295
25-1-2005 14:43
Danku Reemski wink ;)

Het is gelukt, je kan hier alvast zien hoe het werkt.
edit: ik bedoel dan de links naar lol en lolol

Let niet op de rest van de site razz :p
Thanx Dré !
ZzzzzzzzzzzzStandaard Lid
Uit: Nederland
Sinds: 25-6-2003
Laatste: 31-3-2011
Berichten: 45
25-1-2005 17:36

Reemski schreef:

include($_REQUEST['pagina']);
Dit is niet echt een veilige manier...

Hierdoor is het mogelijk om (php, maar ook j@vascript) code uit te voeren op de server...
Op deze manier kunnen kwaadwillenden dus jouw sessieID achterhalen en kapen...

Daarnaast is het ook mogelijk om remote files te includen... dus even een simpele sql query uitvoeren en je complete database is leeg... (of erger)...

Je kunt dus beter vantevoren een array aanmaken met daarin alle bestanden die geinclude mogen worden en de $_GET['pagina'] alleen includen wanneer deze in de eerder opgestelde array voorkomt...
blaat het niet dan schaapt het niet
JeroenVDVVIP Lid
Uit: Nederland
Sinds: 15-6-2004
Laatste: 6-2-2016
Berichten: 4301
25-1-2005 17:56

zzzzzzzzzzzz schreef:

Reemski schreef:

include($_REQUEST['pagina']);
Dit is niet echt een veilige manier...

Hierdoor is het mogelijk om (php, maar ook j@vascript) code uit te voeren op de server...
Op deze manier kunnen kwaadwillenden dus jouw sessieID achterhalen en kapen...

Daarnaast is het ook mogelijk om remote files te includen... dus even een simpele sql query uitvoeren en je complete database is leeg... (of erger)...

Je kunt dus beter vantevoren een array aanmaken met daarin alle bestanden die geinclude mogen worden en de $_GET['pagina'] alleen includen wanneer deze in de eerder opgestelde array voorkomt...
Hoe voer jij in g*dsnaam j@vascript code op de server uit??
Light Image
ZzzzzzzzzzzzStandaard Lid
Uit: Nederland
Sinds: 25-6-2003
Laatste: 31-3-2011
Berichten: 45
25-1-2005 19:08
nouja uuh goed punt :)

Ik heb het dus ff verkeerd gezegd ja...

Je kunt php code door de server laten uitvoeren en mensen ongewild(en onbewust) j@vascript code laten uitvoeren...

denk aan document.cookie en de uitvoer hiervan doorsturen naar een (php) pagina die deze opslaat...
blaat het niet dan schaapt het niet
DréAdministrator
Uit: Nederland
Sinds: 17-11-2001
Laatste: 24-11-2024
Berichten: 13474
25-1-2005 19:39
Daar heb je geen PHP voor nodig (kan ook wel met j@vascriptjes alleen).
-- Pardon my French, I'm Dutch --
ReemskiVIP Lid
Uit: Nederland
Sinds: 22-10-2002
Laatste: 21-11-2024
Berichten: 1370
25-1-2005 21:14

zzzzzzzzzzzz schreef:

Reemski schreef:

include($_REQUEST['pagina']);
Dit is niet echt een veilige manier...

...

Je kunt dus beter vantevoren een array aanmaken met daarin alle bestanden die geinclude mogen worden en de $_GET['pagina'] alleen includen wanneer deze in de eerder opgestelde array voorkomt...
Klopt helemaal. Het is zoiezo niet mijn favoriete manier, maargoed. Als het nu even werkt bij vdv. Wat hij wel kan doen is het volgende: Alle te includen bestandjes in een map /includes zetten. Dan de volgende code:
$include_file = ($_GET['pagina']!="") ? $_GET['pagina'] : "homepage" ;
$include_file = "includes/".$include_file.".php";
include($include_file);
En dan zo aanroepen: "https://www.domein.nl/index.php?pagina=contact"

Op deze manier word het te includen bestand niet volledig bij naampje genoemd. En zet php zelf er een url en .php achter. Mocht iemand dan de volgende url aanroepen is er niets aan de hand:
"https://www.domein.nl/index.php?pagina=www.evildomein.com/deletedatabase.php"

want deze wordt in php dan geinclude als :
"includes/https://www.domein.nl/index.php?pagina=www.evildomein.com/deletedatabase.php.php"

no problemo. En je hoeft geen array meer te maken dus scheelt weer tijd bij aanpassen (en nutteloze code).
JeroenVDVVIP Lid
Uit: Nederland
Sinds: 15-6-2004
Laatste: 6-2-2016
Berichten: 4301
25-1-2005 22:40

Reemski schreef:

zzzzzzzzzzzz schreef:

Reemski schreef:

include($_REQUEST['pagina']);
Dit is niet echt een veilige manier...

...

Je kunt dus beter vantevoren een array aanmaken met daarin alle bestanden die geinclude mogen worden en de $_GET['pagina'] alleen includen wanneer deze in de eerder opgestelde array voorkomt...
Klopt helemaal. Het is zoiezo niet mijn favoriete manier, maargoed. Als het nu even werkt bij vdv. Wat hij wel kan doen is het volgende: Alle te includen bestandjes in een map /includes zetten. Dan de volgende code:
$include_file = ($_GET['pagina']!="") ? $_GET['pagina'] : "homepage" ;
$include_file = "includes/".$include_file.".php";
include($include_file);
En dan zo aanroepen: "https://www.domein.nl/index.php?pagina=contact"

Op deze manier word het te includen bestand niet volledig bij naampje genoemd. En zet php zelf er een url en .php achter. Mocht iemand dan de volgende url aanroepen is er niets aan de hand:
"https://www.domein.nl/index.php?pagina=www.evildomein.com/deletedatabase.php"

want deze wordt in php dan geinclude als :
"includes/https://www.domein.nl/index.php?pagina=www.evildomein.com/deletedatabase.php.php"

no problemo. En je hoeft geen array meer te maken dus scheelt weer tijd bij aanpassen (en nutteloze code).
Hee dat wilde ik net posten happy :) Werkt inderdaad veilig(er). Doe het zelf op die manier ook bij een aantal sites, maar ik wilde even snel uitleggen hoe het ongeveer in z'n werk gaat. Dit is natuurlijk veel veiliger en mooier.
Light Image

Terug naar forum Reageer (zonder quote)