Die Bedeutung des cHash und useCacheHash
empfohleneLinks
The mysteries of &cHash By Kasper Skårhøj
typolink in der TSref
Typo3 ist vergleichsweise Ressourcenintensiv. Die Generierung also interne Erzeugung von TYPO3 Webseiten kann bei großen Projekten zum teil spürbare Verzögerungen hervorrufen. Werden nun gleichzeitig mehrere Seiten von verschiedenen Benutzern aufgerufen, steigt auch die Belastung für den Server (Rechenzeit) an.
In TYPO3 gibt es daher ein ausgeklügeltes Caching System. So werden zum Beispiel Bilder nach einer Bearbeitung zwischengespeichert und nur einmal erzeugt.
In diesem Artikel geht es über das TYPO3 eigene Caching von Seiten. Der Aufruf der selben Seite liefert ja in der Regel die selben Inhalte. Also kann man diese Inhalte auch einmalig erzeugen und zwischenspeichern und dann bei Aufruf der selben URL auch diesen Inhalt zurückgeben.
Rein theoretisch könnte man ja nun einfach jede aufgerufene URL mit der zugehörigen erzeugten Webseite in den Cache Tabellen von TYPO3 speichern.
Diese Methode hätte jedoch einen großen Nachteil. Würde ein Angreifer einfach massenhaft URLS mit Phantasieparametern abrufen, könnte er alleine dadurch die Datenbank mit unendlich Müll füllen.
Seiten also Parameter der Form id=23 sowie Seitentypen &type=255 werden in TYPO3 automatisch gecached. Bei allen anderen Parametern dient ein spezieller Hash, der cHash als Identifizierung des Links.
Dieser cHash ist mit einem individuelen Schlüssel, der als encryption Key in der localconf.php steht, verschlüsslt. Er lässt sich durch Angreifer nichct ausrechnen, die den aktuellen encryptionKey des Projektes ja nicht kennen.
Der CHash wird als Parameter an die URL gehängt:
adressen.html?tx_ttnews[sorting]=tx_lonewsadress_zip&tx_ttnews[direction]=dec&cHash=d4c3d91f14
Bei Nutzung von RealURL wird der cHash Parameter unsichtbar sobald keine Get-Parameter mehr in der URL stehen. Denn RealURL kennt ja seine eigenen erzeugten Domains und die cHash's sind unschön für Suchmaschinen und Besucher.
Bei der eigenen Extensionprogrammierung, aber auch bei der Erzeugung von Links per TypoScript muss man nun jedoch auch den cHash mitgeneriern. sonst wird eine Seite nur ohne Ihre Parameter gecacht und jeder Aufruf (z.B. von verschiedenen Sortierungen einer Liste) sieht nach dem ersten Aufruf gleich aus und veränder sich nur nach dem löschen des Caches im Backend einmalig.
Um den cHash korrekt zu Erzeugen sollte man unbedingt diee eingebaute typolink Funktion nutzen (wie man es eben bei der Erzeugung eines jeden Links in TYPo3 tun sollte). Die TypoLink Funktion hat einen Parameter Namens useCacheHash. Sobald man URL's mit GET Parametern (außer id und type) Erzeugen, die Cache Funktionalität aber nicht verlieren möchte sollte man den cHash über useCacheHash = 1 anschalten.



Kommentar hinzufügen