Adventskalender
    
 HomeAdventskalender • Mogeln 

 Adventskalender  Tagesdateien früher abrufen

Als Referenz für die Gültigkeitsprüfung verwendet das JavaSript das Systemdatum des lokalen Rechners. Nicht wirklich eine wasserdichte Lösung, wenn man mit neugierigen Seitenbesuchern rechnen muss.
Mogeln ist auch für Besucher möglich!


1  Mogeln - Durch Verstellen des Systemdatums

Zum Testen des Adventskalenders stellen Sie das Systemdatum vor. Was sie zu Testzwecken können, kann auch ihr Seitenbesucher auch. Aber ja, sie haben Recht wenn sie behaupten, dass man bei Ihrem Kalender durch Verstellen des Systemdatums (z.B. auf den 24. Dezember) in der Lage wäre, alle Fenster schon viel früher zu öffnen.

Die im Adventskalenderscript verwendete Datumsinformation ist immer das Datum, das am lokalen Rechner eingestellt ist. Bei einem korrekt eingestellten Datum am Computer des Seitenbesuchers (Windows: Uhrzeitanzeige in der Statuszeile rechts unten) wird auch das richtige Datum verwendet.

Uhrzeit und Datumseinstellungen ihres Rechners ändern:
Unten rechts auf dem Bildschirm wird (Windows) normalerweise die Uhrzeit angezeigt. Dort kann man rechtsklicken und Kalender und Zeit ver- / einstellen.

Ist die Uhr nicht zu sehen:
  • Startleiste rechtsklicken
  • Eigenschaften
  • Uhr anzeigen markieren


 
2  Mogeln - Erkennung der Logik bei der Vergabe von Dateinamen

Die Dateinamen der Tagesdateien setzen sich bei den meisten Kalendern aus einer fortlaufenden Ziffer + '.htm' zusammen.
01.htm, 02.htm, 03.htm, 04.htm, .. 
Sobald Ihr aufmerksamer Seitenbesucher das mitbekommt, wird er möglicherweise feststellen, dass die Tagesdateien durch URL-Eingabe in der Adresszeile des Browsers aufgerufen werden können. Die logische Folge ist erkennbar:





Wenn diese Datei existiert, kann sie auch abgerufen werden:
http://www.web-toolbox.net/webtoolbox/adventskalender/advent01/06.htm



  Gegenmaßnamen

Meine Meinung: Wer schon vor Weihnachten die verpackten Geschenke öffnet, bringt sich um die Spannung. Wenn also jemand die Tagesdateien vorzeitig abruft, ist das seine eigene Entscheidung.

Wenn es Ihnen Spaß macht ein wenig 'Katz und Maus' zu spielen, könnten Sie die Herausforderung annehmen.

a  Dateien kurzfristig hoch laden

Die einfachste aber arbeitsaufwändige Abhilfe wäre:

Täglich und kurzfristig die entsprechende Tagesdatei hoch laden.


b  Die Dateinamen der Tagesdateien 'verschlüsseln'

Es ist möglich den Dateinamen zu verschleiern indem man für die Dateinamen eine Zahlenfolge festlegt, die nicht so offensichtlich simpel ist. Mann könnte eigene und willkürlich bestimmte Dateinamen wählen. Einige Varianten meiner Kalender lassen das zu. Dann müssten Sie allerdings im Script diese 24 Dateinamen von Hand eintragen.

Die Datumsprüfung des Kalenders verwendet eigentlich eine simple mathematische Regel zur Bestimmung der Tagesdatei. Damit man eine kompliziertere Rechenoperation zur Entschlüsselung anwenden kann, nehme ich als Basis (Konstante) das Produkt aller Zahlen von 1 - 24 (5354228880). Eine Konstante, die das Script später ohne Rest durch jeder dieser 24 Zahlen teilen kann. Der Dateiname wird dann ermittelt, indem die Konstante durch die Tageszahl (1 - 24) dividiert wird.

Dateiname = Konstante geteilt durch die Tageszahl. Die Zahlen vor dem .htm lauten dann

1 5354228880.htm
2 2677114440.htm
3 1784742960.htm
4 1338557220.htm
5 1070845776.htm
6 892371480.htm
 7 764889840.htm
 8 669278610.htm
 9 594914320.htm
10 535422888.htm
11 486748080.htm
12 446185740.htm
13 411863760.htm
14 382444920.htm
15 356948592.htm
16 334639305.htm
17 314954640.htm
18 297457160.htm
19 281801520.htm
20 267711444.htm
21 254963280.htm
22 243374040.htm
23 232792560.htm
24 223092870.htm

Berechnungsbeispiel (auf Fenster 14 geklickt):

5354228880 / 14 = 382444920  -->  Datei 382444920.htm wird aufgerufen

Zwar kann das theoretisch auch herausgefunden werden, aber dann ist das doch ein wenig undurchsichtiger. Liste als PDF zum Download (rechtsklicken):

Im Script arbeitet man dann nach folgendem Schema:

var Konstante = 5354228880;
var Dateiname = (Konstante / nummer) + ".htm";

Ach ja, falls jemand die Konstante durch Multiplikation aller 24 Zahlen auf seinem simplen Taschenrechner ermitteln will, reicht die Anzahl der angezeigten Stellen normalerweise nicht aus. :-)

Natürlich: Im Quelltext der Kalenderdatei würde man die Konstante irgendwo entdecken, wenn Sie es den kleinen Mathe-Assen einfach machen. Aber auch die Konstante kann man ja verschleiern / durch einige zusätzliche Script-Funktionen erst einmal 'zusammenbauen' lassen.


c  Datum über PHP vom Server auslesen

Wenn sie versierter Webmaster sind und sich mit PHP auskennen, dann schafft ein kleiner Trick Abhilfe:

Sie lesen das Datum vom Server aus (das stimmt ja immer) und übergeben das Serverdatum an mein Adventskalenderscript. Dann ist Mogeln durch Verstellen des Systemdatums am Computer nicht mehr möglich.

Dazu benötigen sie allerdings Kenntnisse in PHP und die Adventskalenderdatei (adventskalender.htm) darf nicht als HTML-Datei, sondern muss als PHP-Datei gespeichert werden (adventskalender.php). Voraussetzung für diese Option ist natürlich, dass Ihr Provider Ihnen erlaubt PHP-Scripte auf dem Server auszuführen.


Zu diesem Thema habe ich eine eigene Seite erstellt. Im Menü links im
Untermenü 'allgemeine Modifikationen' finden sie den Menüpunkt

Datum vom Server (PHP)











NACH OBEN