![]() |
[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 |
super globals aanzetten
|
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 |
idd
register globals :p |
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 |
Het is makkelijker vooraf te weten waar je ana begint en wat je doet :)
|
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! :) |
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. |
Citaat:
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.. |
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. |
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 :) |
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.
|
Citaat:
Citaat:
|
McLaren bedoelde Register Globals. De elementen van de super globals worden dan als variabelen geregistreerd. $_GET['var'] wordt $var.
|
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... :) |
Je kunt toch het beste het meteen goed leren en gewoon $_GET['blah'] gebruiken?
Nouja, your choice. :) |
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 |
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. :( |
Citaat:
Onzin, RG wel aanzetten als je dat fijner vind werken.. En je kunt goed php coden als RG geen veiligheidslek veroorzaakt.. |
Citaat:
Verder durf ik te beweren dat het merendeel van de mensen die RG aanzet, geen competente PHP coders zijn. Gewoon uitzetten dus. |
Citaat:
|
Citaat:
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. |
Citaat:
|
Citaat:
dus dat soort host hoef ik niet :) |
Citaat:
|
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:
|
Citaat:
PHP-code:
|
Citaat:
|
Citaat:
|
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.
|
Citaat:
|
Citaat:
|
Citaat:
|
Citaat:
RG is pas een probleem als je zorgt dat het een probleem is.. |
Citaat:
Citaat:
|
: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.. |
Citaat:
|
Citaat:
|
Citaat:
|
en $_COOKIE
|
Citaat:
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 :) |
Citaat:
|
Citaat:
|
Citaat:
|
Citaat:
Ik ga niet samenwerken met mensen die niet kunnen coden :) |
Citaat:
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. |
Citaat:
|
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. :)
|
Citaat:
jij bent god, jij bent de beste, zoals jij het doet is het perfect :rolleyes: |
Citaat:
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.