Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Webserver & PHP] Variabelen probleempje.. (https://forum.scholieren.com/showthread.php?t=583163)

dd666 28-08-2003 21:03

[Webserver & PHP] Variabelen probleempje..
 
Ik heb een klein probleempje met m'n webserver (welke ik onlangs opnieuw heb ge"installeerd).. Ik kan wel in een php-file een variabele declareren, en deze weer terug halen, maar ik kan niet door een variabele achter de filename te zetten deze 'decaleren'... Dus:

-- in een file: --

$variabele = "TEST";
echo $variabele;

-- de bovenstaande werkt --


-- in de url: --

filename.php?variabele=TEST

-- en deze werkt dus niet! --

Heeft iemand enig idee hoe dit zou kunnen?


Webserver data:
Operating System: Windows 2000 Server
HTTP Server: Apache 2.0
PHP: PHP 4.3.3

Verder zijn er geen speciale dingetjes die ik met m'n server heb gedaan..

Alvast bedankt!
DD - Thei

Triloxigen 28-08-2003 21:27

super globals aanzetten

dd666 28-08-2003 21:54

Ow McLaren, jij bent mijn grote held! :D

't Werkt nu.. Heb 2 keer m'n pc geformat in de hoop dat 't op die manier goed kwam, maar dat holp niet.. haha :$

Dankjewel voor je geweldige hulp! :D

Wat mij betreft mag ie dicht ofzow.. :)

Daaag! :D

*Ongeloofelijk blij omdat hij nu eindelijk verder kan gaan...* :D:D:D

CryptapiX 28-08-2003 22:34

idd
register globals :p

dd666 28-08-2003 22:45

Yep, is achterafgezien ook wel heel simpel en logisch, maar als je ze nek ligt te breken over dat probleem en je zit telkens in eenzelfde cirkel te denken komt je er gewoon niet op! Een week gehad, en toen dacht ik: Gewoon ff vragen op 't scholieren forum.. Daar zit vast wel 'n knappe gast die dat misschien wel weet! :D

En binnen een uur was ik geholpen! :D Thx!

Ciao,
DD - Thei

Triloxigen 28-08-2003 22:50

Het is makkelijker vooraf te weten waar je ana begint en wat je doet :)

dd666 28-08-2003 22:52

Ben er al een jaartje mee bezig.. Normaal heeft ie 't altijd goed gedaan... Ga het komende jaar een opleiding tot ISP volgen, en dan hoop ik écht de fijnere dingetjes te leren.. Maar voorlopig kan ik me met mijn kennis al helpen.. :)

En mijn kennis, gecombineerd met een beetje hulp van de behulpzame mensen op dit geweldige (slijm slijm ;) ) forum is voorlopig wel eventjes voldoende! :)

Enlightenment 28-08-2003 23:47

Register Globals niet aanzetten, maar goed PHP leren coden:

www.domein.com/phppagina.php?variabele=hoi

echo($_GET['variabele']);

$_GET is wat in je URL staat zeg maar
$_POST is wat is gesubmit is in een formulier

Register Globals is onveilig en ononverzichtelijk en gewoon slordig coden IMHO.

CryptapiX 29-08-2003 00:40

Citaat:

Enlightenment schreef op 29-08-2003 @ 00:47:
Register Globals niet aanzetten, maar goed PHP leren coden:

www.domein.com/phppagina.php?variabele=hoi

echo($_GET['variabele']);

$_GET is wat in je URL staat zeg maar
$_POST is wat is gesubmit is in een formulier

Register Globals is onveilig en ononverzichtelijk en gewoon slordig coden IMHO.

slordig is bs..
mijn code is overzichteljk en mn register globals staan aan..
onveilig.. ach.. wat zal het veel uitmaken.. ik denk dat hij met register globals uit nog steeds veiligheids fouten maakt

ik heb voor school een helpdesk site moeten maken en daar heb ik gebruik gemaakt van de $_GET $_REQUEST $_POST crap.. maar buitenom dat het veel meer typen was heb ik geen verschil gemerkt..

Enlightenment 29-08-2003 01:49

Je kan zomaar variabelen injecteren via de URL:

pagina.php?userlevel=8

om maar wat te noemen. Als je script goed geschreven is, zou het geen security issues mogen maken, maar dat betekent wel enorm veel meer tijd; aangezien je elke variabele expliciet moet schrijven/controleren. Voorbeeldje:

if ($logged_in)
{
blabla;
$userlevel = 4;
}

if ($userlevel > 2)
{
doe iets wat normale user niet mag
}

Bovenstaande code kun je hacken, omdat $userlevel alleen wordt ge-assigned als de user ingelogd is. Dus zorgen dat je niet ingelogd bent, en dan pagina.php?userlevel=5 en je hebt access. Dat soort dingen dus.

Een (unauthorized) user behoort niet zomaar variabelen te kunnen injecteren, dat is iedere goede programmeur hopelijk met me eens.

deathz0rz 29-08-2003 01:56

ik ben het (dit keer :P) volledig met Enlightenment eens

het wordt ook leuk als je IP's mee gaat geven enzo
of een variable in het begin geassignd wordt met
$bla[]='juh';
als je dan ?bla=iets doet krijg je leuke errors :)

Manuzhai 29-08-2003 01:57

Superglobals hoef je dus niet aan te zetten, die staan altijd aan. Overigens zet ik altijd in een include dat $P = $_POST en $S = $_SERVER enzo, dat scheelt weer wat typewerk.

deathz0rz 29-08-2003 01:59

Citaat:

McLaren schreef op 28-08-2003 @ 22:27:
super globals aanzetten
Citaat:

Manuzhai schreef op 29-08-2003 @ 02:57:
Superglobals hoef je dus niet aan te zetten, die staan altijd aan.
hmm ja, denkfout? :D

Enlightenment 29-08-2003 02:10

McLaren bedoelde Register Globals. De elementen van de super globals worden dan als variabelen geregistreerd. $_GET['var'] wordt $var.

dd666 29-08-2003 10:20

Dat klopt, en dat stond standaard niet aan..

Ik ben 't ook eens met die security issues waar jullie 't over hebben, maar voor 'n goede programmeur moet dat geen probleem zijn... :)

Enlightenment 29-08-2003 14:28

Je kunt toch het beste het meteen goed leren en gewoon $_GET['blah'] gebruiken?

Nouja, your choice. :)

CryptapiX 29-08-2003 15:01

ik ben het in dat opzicht geheel met je eens..
maar, mijn host heeft regglobals toch aanstaan..
en ik heb geen delen waar bepaalde users niet mogen komen..

dat had ik op die helpdesk site we len daarom had ik dus reg globals daar wel uit staan

Enlightenment 29-08-2003 16:52

Het veiligheidsvoordeel valt idd weg dan.

Blijft alleen nog het voordeel van jezelf goed aanleren en overzicht over, want als iemand anders in jouw code opeens $var tegenkomt, is het niet altijd duidelijk dat jij verwacht dat die uit de URI komt.

Maar het is wel de reden dat ik m'n site nooit zal onderbrengen bij een commerciële hoster, omdat deze ofwel oude versies van de software (met name PHP) draait, ofwel naar mijn smaak foute instellingen in de php.ini heeft staan. Maarja sommige mensen hebben niet veel keus. :(

Triloxigen 31-08-2003 10:00

Citaat:

Enlightenment schreef op 29-08-2003 @ 00:47:
Register Globals niet aanzetten, maar goed PHP leren coden:

www.domein.com/phppagina.php?variabele=hoi

echo($_GET['variabele']);

$_GET is wat in je URL staat zeg maar
$_POST is wat is gesubmit is in een formulier

Register Globals is onveilig en ononverzichtelijk en gewoon slordig coden IMHO.



Onzin, RG wel aanzetten als je dat fijner vind werken..
En je kunt goed php coden als RG geen veiligheidslek veroorzaakt..

Enlightenment 31-08-2003 17:31

Citaat:

McLaren schreef op 31-08-2003 @ 11:00:
Onzin, RG wel aanzetten als je dat fijner vind werken..
En je kunt goed php coden als RG geen veiligheidslek veroorzaakt..

Daar zit wat in, als je code goed is moet RG geen problemen moeten kunnen geven. Maar dan nog vind ik het onoverzichtelijk en gewoon slordig.

Verder durf ik te beweren dat het merendeel van de mensen die RG aanzet, geen competente PHP coders zijn. Gewoon uitzetten dus.

Chimera 31-08-2003 18:11

Citaat:

dd666 schreef op 29-08-2003 @ 11:20:
Ik ben 't ook eens met die security issues waar jullie 't over hebben, maar voor 'n goede programmeur moet dat geen probleem zijn... :)
Programmeurs zijn mensen, en maken dus foute, ook 'goede' programmeurs. Register-globals staat tegenwoordig echt niet voor niets standaard uit.

Chimera 31-08-2003 18:13

Citaat:

McLaren schreef op 31-08-2003 @ 11:00:
Onzin, RG wel aanzetten als je dat fijner vind werken..

En wat doe je met je code als je moved naar een host die RG niet aan heeft staan, en dit, geheel terecht, ook niet van plan is? Mag je al je code nalopen.

Je moet er in je code niet vanuit gaan dat RG aanstaat, krijg je porteringsproblemen, en bovendien hebben ze dat er echt niet voor niets uitgehaald.

Chimera 31-08-2003 18:13

Citaat:

Enlightenment schreef op 31-08-2003 @ 18:31:

Verder durf ik te beweren dat het merendeel van de mensen die RG aanzet, geen competente PHP coders zijn.

Hear hear.

Triloxigen 31-08-2003 21:26

Citaat:

Chimera schreef op 31-08-2003 @ 19:13:
En wat doe je met je code als je moved naar een host die RG niet aan heeft staan, en dit, geheel terecht, ook niet van plan is? Mag je al je code nalopen.

Je moet er in je code niet vanuit gaan dat RG aanstaat, krijg je porteringsproblemen, en bovendien hebben ze dat er echt niet voor niets uitgehaald.

Ja, dat zijn ook vaak hosts die phpinfo() disablen,
dus dat soort host hoef ik niet :)

dd666 31-08-2003 23:02

Citaat:

Chimera schreef op 31-08-2003 @ 19:13:
En wat doe je met je code als je moved naar een host die RG niet aan heeft staan, en dit, geheel terecht, ook niet van plan is? Mag je al je code nalopen.

Je moet er in je code niet vanuit gaan dat RG aanstaat, krijg je porteringsproblemen, en bovendien hebben ze dat er echt niet voor niets uitgehaald.

Ik bén soort van host, en omdat iemand z'n site bij me plaatste, maar z'n variabelen deden het opeens niet meer, heb ik alsnog de Register Globals aangezet..

eXo 01-09-2003 01:11

Ik heb weer wat geleerd (Y)

Thx people. Ik declareer gewoon al m'n variabelen in het begin van het script, dat werkt net zo fijn. Dus:

PHP-code:

$variabele $_GET["variabele"]

echo 
"$variabele"

Wiejoeh, ooit wordt ik goed hierin.

eddie 01-09-2003 07:50

Citaat:

eXo schreef op 01-09-2003 @ 02:11:
Ik heb weer wat geleerd (Y)

Thx people. Ik declareer gewoon al m'n variabelen in het begin van het script, dat werkt net zo fijn. Dus:

PHP-code:

$variabele $_GET["variabele"]

echo 
"$variabele"

Wiejoeh, ooit wordt ik goed hierin.

Om nog beter te worden:
PHP-code:

echo $variabele

(dus zonder de dubbele quotes)

Chimera 01-09-2003 09:19

Citaat:

McLaren schreef op 31-08-2003 @ 22:26:
Ja, dat zijn ook vaak hosts die phpinfo() disablen,
dus dat soort host hoef ik niet :)

Phpinfo() is een minder groot veiligheidsrisico dan RG, maargoed, als je zelf vast wil houden aan je eigen domme ideeen raad ik je aan geen werk in de IT te zoeken. We hebben al genoeg mensen als jij die de naam van IT-ers verpesten.

Chimera 01-09-2003 09:20

Citaat:

dd666 schreef op 01-09-2003 @ 00:02:
Ik bén soort van host, en omdat iemand z'n site bij me plaatste, maar z'n variabelen deden het opeens niet meer, heb ik alsnog de Register Globals aangezet..
Uitzetten en hem zelf lekker z'n code aan laten passen. Ik vind het frappant dat zo veel mensen hier over secutiry blaten, maar dat als het puntje bij het paaltje komt blijkt dat het alleen maar gebakken lucht is.

Manuzhai 01-09-2003 10:40

Volgens mij praten hier maar weinig mensen over security, scholieren zijn toch niet een publiek dat zich daar al te druk over gaat maken. Overigens kan het gebruik van de extract() functie ook nog best nuttig zijn als register_globals uitstaat.

Triloxigen 01-09-2003 12:57

Citaat:

Chimera schreef op 01-09-2003 @ 10:19:
Phpinfo() is een minder groot veiligheidsrisico dan RG, maargoed, als je zelf vast wil houden aan je eigen domme ideeen raad ik je aan geen werk in de IT te zoeken. We hebben al genoeg mensen als jij die de naam van IT-ers verpesten.
Ohw god, Chimera praat weer eens over iemand die die niet kent :rolleyes:

Chimera 01-09-2003 13:20

Citaat:

McLaren schreef op 01-09-2003 @ 13:57:
Ohw god, Chimera praat weer eens over iemand die die niet kent :rolleyes:
Ik heb genoeg van je gelezen om te zien dat jij hier nooit en te nimmer zou worden aangenomen. RG is een fundamenteel securityprobleem. Als jij dat niet serieus neemt, en of je voor de lol progged of professioneel boeit niet, dan neem ik jou als programmeur niet serieus.

Chimera 01-09-2003 13:21

Citaat:

Manuzhai schreef op 01-09-2003 @ 11:40:
Volgens mij praten hier maar weinig mensen over security, scholieren zijn toch niet een publiek dat zich daar al te druk over gaat maken.
Als je het weet, maar je er niet druk over maakt, ben je een prutser. Scholier of niet.

Triloxigen 01-09-2003 13:51

Citaat:

Chimera schreef op 01-09-2003 @ 14:20:
Ik heb genoeg van je gelezen om te zien dat jij hier nooit en te nimmer zou worden aangenomen. RG is een fundamenteel securityprobleem. Als jij dat niet serieus neemt, en of je voor de lol progged of professioneel boeit niet, dan neem ik jou als programmeur niet serieus.
De reden dat jij anderen niet serieus neemt is dat je kortzichtig bent en denkt iemand te kennen.

RG is pas een probleem als je zorgt dat het een probleem is..

Manuzhai 02-09-2003 11:17

Citaat:

Chimera schreef op 01-09-2003 @ 14:21:
Als je het weet, maar je er niet druk over maakt, ben je een prutser. Scholier of niet.
Onzin. Als ik hier voor mezelf een studie-informatiesysteempje ga bouwen dat in een .htaccess beveiligde directory gaat draaien ga ik daarbij niet extreem op de veiligheid letten. Wel defensief programmeren, natuurlijk, maar ik vind dat je de kritische systemen van de iets minder kritische systemen moet kunnen onderscheiden en naar gelang daarvan meer of minder tijd in security moet stoppen.

Citaat:

McLaren schreef op 01-09-2003 @ 14:51:
RG is pas een probleem als je zorgt dat het een probleem is..
Juist niet. Register_globals is pas geen probleem meer als je zorgt dat het geen probleem meer is. :P

Triloxigen 02-09-2003 12:12

:D

Maar ik vraag me af of je wel goed programmeert als RG kan zorgen voor een veiligheidslek, of het nou aan staat of niet.

Want net alsof het uitmaakt of je het via $_POST de var gebruikt, aangezien je ook alles kunt posten..

eXo 02-09-2003 12:48

Citaat:

eddie schreef op 01-09-2003 @ 08:50:
Om nog beter te worden:
PHP-code:

echo $variabele

(dus zonder de dubbele quotes)

Wat boeit dat?

eddie 02-09-2003 13:07

Citaat:

eXo schreef op 02-09-2003 @ 13:48:
Wat boeit dat?
Een string in dubbele quotes wordt geintreperteerd en is dus langzamer.

Enlightenment 02-09-2003 16:33

Citaat:

McLaren schreef op 02-09-2003 @ 13:12:
:D

Maar ik vraag me af of je wel goed programmeert als RG kan zorgen voor een veiligheidslek, of het nou aan staat of niet.

Want net alsof het uitmaakt of je het via $_POST de var gebruikt, aangezien je ook alles kunt posten..

Natuurlijk, maar dan wil jij als PHP coder explicitiet een POST value weten, als je werkt met interne variabelen die niet altijd gedefiniëerd worden onder alle omstandigheden (wat veel voorkomt in de praktijk, E_ALL levert altijd wel notices op), wil je niet dat de gebruiker daar invloed op heeft. Bovendien is het veel netter als je POST en GET van elkaar kunt scheiden en elk in een eigen array zit, net als $_SERVER en $_SESSION en $_ENV.

deathz0rz 02-09-2003 16:41

en $_COOKIE

Triloxigen 02-09-2003 16:46

Citaat:

Enlightenment schreef op 02-09-2003 @ 17:33:
Natuurlijk, maar dan wil jij als PHP coder explicitiet een POST value weten, als je werkt met interne variabelen die niet altijd gedefiniëerd worden onder alle omstandigheden (wat veel voorkomt in de praktijk, E_ALL levert altijd wel notices op), wil je niet dat de gebruiker daar invloed op heeft. Bovendien is het veel netter als je POST en GET van elkaar kunt scheiden en elk in een eigen array zit, net als $_SERVER en $_SESSION en $_ENV.
Kijk, dat van duidelijkheid is een heel ander verhaal dan veiligheid,
je maakt iig een veel beter punt dan Chimera.

Alleen ik weet wat ik met vars doe, dus heb niet echt problemen met dat soort dingen :)

deathz0rz 02-09-2003 16:48

Citaat:

McLaren schreef op 02-09-2003 @ 17:46:
Alleen ik weet wat ik met vars doe, dus heb niet echt problemen met dat soort dingen :)
andere mensen niet

Triloxigen 02-09-2003 17:12

Citaat:

deathz0rz schreef op 02-09-2003 @ 17:48:
andere mensen niet
Ja, maar dat is dus niet mijn probleem ;)

deathz0rz 02-09-2003 17:15

Citaat:

McLaren schreef op 02-09-2003 @ 18:12:
Ja, maar dat is dus niet mijn probleem ;)
wel op het moment dat je voor je werk gaat scripten

Triloxigen 02-09-2003 17:34

Citaat:

deathz0rz schreef op 02-09-2003 @ 18:15:
wel op het moment dat je voor je werk gaat scripten
Waarom?
Ik ga niet samenwerken met mensen die niet kunnen coden :)

Chimera 02-09-2003 17:47

Citaat:

McLaren schreef op 02-09-2003 @ 17:46:
Alleen ik weet wat ik met vars doe, dus heb niet echt problemen met dat soort dingen :)
"Security by obscurity is no security".

Door naar de werking van een page te kijken kun je vaak al raden welke vars intern gebruikt worden. De kans is dan redelijk groot dat je vars kunt overriden. Als jij niet die 0.1% meer werk wil doen om je scripts 50% veiliger te maken, ben je gewoon hoe dan ook een prutser.

Chimera 02-09-2003 17:47

Citaat:

McLaren schreef op 02-09-2003 @ 18:34:
Waarom?
Ik ga niet samenwerken met mensen die niet kunnen coden :)

Je gaat dus niet met jezelf samenwerken? :confused:

eXo 02-09-2003 17:50

Urm. Doe 'ns lief. Chimeara als jou McLarens manier van programmeren niet aanstaat, so be it. Ik code nog veel waardelozer, maar ik probeer wijzer te worden door veel te proberen en te lezen enzo. McLaren vind dat niet nodig en is tevreden met wat ie nu doet. Laat hem dan. :)

Triloxigen 02-09-2003 17:53

Citaat:

Chimera schreef op 02-09-2003 @ 18:47:
Je gaat dus niet met jezelf samenwerken? :confused:
Nou weten we het wel hoor,
jij bent god, jij bent de beste, zoals jij het doet is het perfect :rolleyes:

Chimera 02-09-2003 18:12

Citaat:

eXo schreef op 02-09-2003 @ 18:50:
Urm. Doe 'ns lief. Chimeara als jou McLarens manier van programmeren niet aanstaat, so be it.
Je kent vast "Englishman in New York" van Sting wel, daarin zitten de wijze woorden "It takes a man to suffer ignorance and smile". Needless to say, dat me dat vaak niet lukt :)

Ik heb niks tegen een andere stijl, maar proggen met RG globals aan terwijl je weet dat het een securityprobleem is, is gewoon dom, en ik krijg jeuk van domme mensen ;)


Alle tijden zijn GMT +1. Het is nu 07:16.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.