Server Gehackt!

zu 1 und 2: ok. Schau ich mir mal genauer an!
zu 3. Das war meine Vermutung (dass ich es mit dem .php anhängen verhindere).
Ich habe mir Register_Globals nochmal durchgelesen. Ich war immer der Meinung eine Übergabe von Variablen in der URL wäre dann gar nicht mehr möglich. Ok dem ist nicht so nur die chance "böse" anhänge zu übertragen wird minimiert...
Ich habe immer mit register_globals ON gearbeitet und dachte: Wenn ich bis auf ein paar "unwichtige" wie $delid $editid verzichte dann ist das kein Problem. Aber mit dem include habe ich mir echt ein eigentor gebaut... OK da muss ich mir was überlegen wie ich das anderes gestallten kann...
 
hi,
so ich habe die Seite mal geändert.
Die register_globals habe ich mir nun abgeschaltet seiten rufe ich nun folgendermaßen auf:
PHP:
if($_GET['aktion']=="news"){
    $goto="n/news/index.php"
}else{
    $goto="error.php";
}
include($goto);
dies sollte doch verhindern dass jemand mit dieser (oder anderen) Variabel eine freme Seite einbindet! Liege ich damit richtig?
 
Ja aber zur Erinnerung :
Du solltest dich übrigens bei der Suche nach der anfälligen Datei nicht nur auf bestimmte Dateien beschränken, weil du alle anderen für sicher ( oder sogar "unsichtbar" ) hältst, sondern lieber alles checken.

Solltest du dir unsicher sein kannst du ja nochmal fragen.
 
jo. Ich habe alles gecheckt! Alle Variablen geändert bzw. beschränkt. Also normal dürfe man nichts mehr in die seite einbringen können das nicht von mir mit $_GET ausgelesen wird. und das sind nur spezielle sachen. Habe mir da viel mühe gegeben und bin sehr Akribisch vorgegangen. Nur eines habe ich nicht gecheck: die fancybox weil die nicht von mir ist ^^
 
Statt alles mit if zu überprüfen, bietet sich auch folgende Methoden an:
PHP:
$valid_pages = array('news', 'blabla');
if( in_array($_GET['page'], $valid_pages) )
  include $_GET['page'].'.php';

//oder
switch($_GET['page']){
  case 'news':
    include 'news.php';break;
  case 'blabla':
    include 'blabla.php'; break;
  default:
    include 'error.php';
}
 
Stimmt. Das ist ein wenig einfacher.
Aber wo wir schon dabei sind... ich habe mal gehört die switch, case funktion belastet den Server nicht so... ist da was wahres dran? (nur so nebenbei)
 
Zuletzt bearbeitet:
Ich sehe schon. Die Meinungen Spalten sich. Aber gut dies ist auch nicht das Thema hier, war ja nur so eine Randfrage. Erstmal Danke für die Links werde bei gelegenheit mal reinschauen.
 
Es kommt auf die Menge der Vergleiche an. Bei großen Mengen ist switch schneller.

Eher nicht ( Es sei denn wir reden von utopischen Dimensionen ). Schnell mal ein Versuch gemacht nach folgendem Muster :
PHP:
while($i < 10000) 
{ 
switch ($i) { 
case 0: break;
case 1: break;
.
.
.
case 1000: break;

Das gleiche mit if/elseif.

Und die Ergebnisse sind die gleichen wie in den geposteten Links:
switch/case : 1.7848701477051
if/elseif : 1.6313810348511
 
Zurück