Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> Diese Datei existiert seit... PSPad Plugin für diverse Text-Funktionen :: PHP Fatal Error und kein abgebuchtes Geld
Diese Datei existiert seit...
Verfasst am: 10.05.2010, 14:57   Autor: killerbees19
Immer wieder liest man in Foren und Blogs lächerliche Vergleiche, wo eine Inhaltsgleiche Datei auf Server A schon viel länger existiert als auf Server B. Ermittelt wird dies meistens durch den HTTP-Header einer Datei, der z.B. auch die letzte Änderung einer Datei ausgibt. Als Beispiel der HTTP-Header des Blog-Logos:

Code:
HTTP/1.1 200 OK
Date: Mon, 10 May 2010 12:39:04 GMT
Server: Apache
Last-Modified: Fri, 27 Apr 2007 18:30:56 GMT
ETag: "c28c1ec-1cd2-42f1c560b1800"
Accept-Ranges: bytes
Content-Length: 7378
Connection: close
Content-Type: image/jpeg


Hier sieht man auf den ersten Blick, dass die Datei zuletzt am 27. April 2007 (Last-Modified) geändert wurde. Doch für Vergleiche z.B. bei gestohlenem Inhalt ist das überhaupt kein Kriterium. Zum einen kann diese Zeit durch eingespielte Backups und Serverumzüge schnell näher in der Zukunft liegen, als man möchte. Und zum anderen kann man dieses Datum überall fälschen! Die Möglichkeit dafür bieten z.B. diverse FTP-Programme. Alternativ braucht es dafür nur eine x-beliebige Scriptsprache auf dem Webspace, z.B. mit einem kleinen PHP-Script:

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

// Setzt die Änderungszeit auf das aktuelle Datum + Uhrzeit
touch('<filename>');

// Setzt die Änderungszeit auf das angegebene Datum + Uhrzeit
touch('<filename>'mktime(<hour>, <minute>, <second>, <month>, <day>, <year>));

// Setzt die Zugriffszeit und Änderungszeit unabhängig voneinander
// Ermöglicht z.B. nette Vergangeheit/Zukunft Spielchen ;-)
touch('<filename>'mktime(<hour>, <minute>, <second>, <month>, <day>, <year>), (time() - 3600));

?>


Der Benutzer des Scripts (vermutlich der Webserver) muss dafür die nötigen Rechte für die Datei besitzen. Vorher also eventuell im FTP-Programm alles richtig chmod'en. Nach dem Aufruf ist die Datei-Änderungszeit geändert und der HTTP-Header ebenfalls. Weitere Informationen über touch() findet man in der PHP Dokumentation Smile

Möglichkeit #2 besteht darin, es über direkt die Konsole zu ändern. Das ist besonders für (Linux) (v)Server Besitzer oder Nutzer mit Shell-Zugang interessant. Dort funktioniert es ebenfalls über den touch Befehl:

Code:
Aufruf: touch [OPTION]... DATEI...
Die Zugriffs- und Modifikationszeiten jeder DATEI auf die
momentane Zeit aktualisieren.

Eine DATEI, die nicht existiert, wird leer angelegt.

Ist DATEI mit - angegeben, so ändert touch die Zeiten für die Datei,
die mit der Standardausgabe verbunden ist.

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
  -a                     Nur die Zugriffszeit ändern.
  -c, --no-create        Keine Dateien erzeugen.
  -d, --date=DATUM       DATUM lesen und statt der momentanen Zeit verwenden.
  -f                     (ignoriert)
  -m                     Nur Modifikationszeit ändern.
  -r, --reference=DATEI  Die Zeiten dieser Datei anstatt der momentanen Zeit
                           verwenden.
  -t MARKE               [[HH]JJ]MMTTSSmm[.ss] statt momentaner Zeit verwenden.
  --time=WORT            Die Zeit, die von WORT angegeben wird, setzen:
                           access, atime oder use: wie -a; mtime, modify: wie -m
      --help     diese Hilfe anzeigen und beenden
      --version  Versionsinformation anzeigen und beenden

Beachten Sie, dass -d und -t verschiedene Zeit-Datum-Formate akzeptieren.


Weitere Details können der Manpage entnommen werden Wink

Lange Rede, kurzer Sinn: Die Änderungszeit einer Datei ist also absolut relativ, Diskussionen darüber kann man also gleich vergessen Razz


MfG Christian

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt am 04.06.2010, 20:42.


Autor Nachricht
Für diesen Beitrag können zur Zeit keine neuen Kommentare verfasst werden.

Kontaktiere den Autor des Beitrages, falls du Fragen dazu hast.


 

Verwendete Zeitzone: CET (Europe/Berlin)
Aktuelles Datum & Uhrzeit: 28.03.2024, 10:20
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

Hosted by netcup
 
 
[ happytec.at | blog.happytec.at | forum.happytec.at | esports.happytec.at ]