IP+Seite speichern

nom

Mitglied
Hi ihr ich mal wieder ^^
Da ich meinem Serverlog nicht ganz vertraue möchte ich etwas in meine pages einbauen.
Es soll ein IP log script sein das die IP + die Seite inklusive aller übergebener Parameter in eine datei speichert, eine neue zeile beginnt und dann das nächste speichert.

Ist soetwas machbar, wenn ja wie? IP log ansich ist nicht schwer. Nur die pages mit den Parametern.

Die Parameter will ich deshalb haben, um zu sehen wenn jemand eine sql injection oder eine RFI (=Remote File Inclusion) Attack probiert.

mfg
nom
 
Im Prinzip langt es doch wenn du einfach nur den Inhalt von $_POST und/oder $_GET mit der IP zusammen Speicherst.
Das speichern in einer Textdatei könnte dann so aussehen:

PHP:
$Datei = "moep.txt";
$Text = $_POST['injection'];
$FilePointer = fopen($Datei, "a");
fwrite($FilePointer, $Text);
fclose($FilePointer);
Erklärung: http://de3.php.net/fopen
 
Zuletzt bearbeitet:
Statt umständlich die $_GET Werte auszulesen, wäre die Benutzung von $_SERVER['QUERY_STRING'] einfacher.

Mit PHP5 wäre folgendes möglich:

PHP:
<?php
function logRequest() 
{
  $string = '';
  $string .= date("d.m.Y H:i:s");
  $string .= ' '.$_SERVER['REMOTE_ADDR'];
  $string .= ' '.__FILE__.$_SERVER['QUERY_STRING'];
  $string .= "\n";
  
  file_put_contents('./log.file', $string, FILE_APPEND);
}

logRequest();
?>

Das Resultat sieht dann ungefähr so aus:
08.08.2007 22:35:19 127.0.0.1 E:\xampp\htdocs\test.phpfoo=1&bar=2
08.08.2007 22:35:23 127.0.0.1 E:\xampp\htdocs\test.phpfoo=1&bar=2
 
PHP:
<?php

$file = "logfile.txt";

$ex = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : "";

$ip = ' IP: '.$_SERVER['REMOTE_ADDR'].' - Datum:  '.date('d.m.Y - H:i s').' - Wo? '.basename($_SERVER['PHP_SELF']).' '.$ex.' - Method : '.$_SERVER['REQUEST_METHOD'].' ';
$fp = fopen($file, 'a+');
fwrite($fp , $ip);
fclose($fp);

?>
 
Zurück