Seite 1 von 1
verhindern das meine dateien wo anders includet werden
Verfasst: 13.01.2007 18:59
von langeweile
ich habe mir ein kleines homepagescript gebastelt. dazu gibt es einige funktiondateien, die ich inlcude.
aber wie verhindere ich, dass jemand anders das in seine scripte includet und so meine datenbank erreichen kann?
p.s.
man kann doch auch so includen oder?
include ("
http://www.......");
oder geht das nur mit internen links, da gäbe es das obere problem ja nicht
Verfasst: 13.01.2007 19:02
von Pyramide
Du kannst es so wie phpBB machen und eine gesetzte Konstante vorrausetzen. Such mal im Quellcode (z.B. index.php und common.php) nach IN_PHPBB.
Verfasst: 13.01.2007 19:06
von langeweile
aber kann man das nicht umgehen, in dem der, der an die inlcudes herankommen will in seinem script die gleiche konstante setzt und dann erst includet?
edit:
hab das gefunden
Code: Alles auswählen
if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}
sry, aber das kapier ich überhaupt nicht, wie kann man denn da überprüfen ob eine konstante gesetzt ist? vorher ist doch gar kein code, in dem die konstante gesetzt wird
Re: verhindern das meine dateien wo anders includet werden
Verfasst: 13.01.2007 19:09
von S2B
langeweile hat geschrieben:aber wie verhindere ich, dass jemand anders das in seine scripte includet und so meine datenbank erreichen kann?
z.B. so, wie es das phpBB macht:
Direkt aufgerufene Dateien:
Dateien, die eingebunden werden:
Dazu noch eine .htaccess in den Ordner, in dem die Dateien liegen:
langeweile hat geschrieben:man kann doch auch so includen oder?
include ("
http://www.......");
oder geht das nur mit internen links, da gäbe es das obere problem ja nicht
Das geht nur, wenn allow_url_fopen an ist.
Verfasst: 13.01.2007 19:12
von langeweile
aber würde dann so ein script nicht funktionieren
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
include("http://www.phpbb.de/common.php");
.....
nur so als beispiel
denn dann wird die konstante doch gesetzt und die abfrage müsste positiv verlaufen
Verfasst: 13.01.2007 19:18
von Olli Oberhausen
Probiers doch mal aus, dann weisst du es.
Die common. hp wird bei einem include auf dem remote server vollständig geparsed , ausgegeben und beendet.
Somit kannst du nicht auf die funktionen und objekte (z.b.$sql) zugreifen.
Olli
Verfasst: 13.01.2007 19:21
von langeweile
also werden zum schluss alle variablen auf 0 gesetzt oder wie
und wenn ja wozu dann der konstanten schutz, wenn man den umgehen kann
Verfasst: 13.01.2007 21:25
von Olli Oberhausen
Die variablen werden nie gesetzt.
Das script wird auf dem remote server ausgefuhrt und die geparste datei als htm, xml oder was auch immer zurückgegeben...
Olli