Citaat:
Wat ik me net afvraag: als ik een php-bestand dat de verbinding opstelt include, kan ik dan eigenlijk zomaar aan de database prutsen (gegevens aanpassen of tabellen deleten)?
Is includen dan niet heel onveilig?
Goed gezien van je, maar je mist iets in je redenering. Als je dit:
Code:
include("http://www.scoutskortemark.be/gastenboek/logingegevens.php");
in je code zet dan gebeurt het volgende:
1. De php parser op scoutnet maakt een http verbinding met scoutskortemark.be, toevallig ook scoutnet. Maar het kon net zo goed een andere server zijn, dit maakt geen verschil. In het vervolg zal ik dus "die webserver" zeggen als ik het over scoutskortemark op scoutnet heb, om het duidelijk te houden.
2. Die webserver reageert door het gevraagde bestand op te halen en ziet dat het een php bestand is.
3. Die webserver start dus de php parser en voert het php-script uit.
4. De output, en dit is belangrijk, de output(!) stuurt die webserver dus door naar naar jouw php-script.
Maar hierbij stopt het nog niet! Nu komt het security gevaar! En niet voor scoutskortemark, maar voor jou, diegene die het bestand include!
5. De php parser heeft dus eindelijk zijn bestand. Maar een eigenschap van php is dat php code in bestanden die geinclude worden wordt uitgevoerd! Dus stel nu dat in het script van scoutskortemark het volgende stond:
Code:
<? echo("echo(\"Bush is een...\");"); ?>
Dan staat er dus in de output die JOUW php parser nu gaat uitvoeren:
Code:
echo("Bush is een...");
Nou heb jij ff een probleem zeg. Staat daar in koeien van letters op JOUW site dat Bush een ... is. Vliegt daar meteen de CIA, de FBI en de SecretService door jouw vensterraam!
Nu ja voor het zelfde geld had jij eerder in het script al een db connectie gemaakt en stond er in de output sql code om je hele database te droppen. Minder leuk dus.
Daarom laten de meeste webhosts niet toe om includes te doen op bestanden buiten het eigen domein.
Je hebt wel een heel andere situatie als je die http weglaat...
Hopla