1.6k Aufrufe
Gefragt in Webseiten HTML von
Hi liebe Foristen,

ich überlege mir auf meiner Homepage einen Hitcounter einzubauen, ähnlich dem hier bei den Fragen nur will ich, dass man den nicht durch einfaches Neuladen in die Höhe treiben kann.

Ich bin relativ neu was Webseiten angeht deshalb frage ich euch, wie könnte man so einen bulletprofed Hitcounter basteln, der nicht "betrogen" werden kann oder eben nur sehr schwer?

Ich kenen z.B. Cookies oder Sessions (auch wenn mir nicht ganz klar ist wie die funktionieren) oder das Protokollieren der IP Nummern.

Welcher Weg wäre also praktikabel?

cu Hitcounter

4 Antworten

0 Punkte
Beantwortet von halfstone Profi (18.1k Punkte)
Hi Hitcounter,

wie ich das sehe gibt es außer die Speicherung der IP Adressen keine wirklich einigermaßen objektive Möglichkeit das zu zählen.

Kommt auch immer drauf an wie sicher du es haben willst, wenn du nur den Reload verhindern willst, dann geht das sicher gut über Sessions, wenn es aber wirklich bulletproof sein soll dann muss man jeden Aufruf in einer Datenbank speichern und vergleichen mit neuen Aufrufen, was bei gut besuchten Webseiten ein ziemliches Performanceproblem sein dürfte.

Cookies halte ich für keine gute Möglichkeit, da man die eigentlich nicht ungefragt verteilen sollte und die ja sehr einfach zu löschen sind.

Gruß Fabian
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Mal was einfaches mit Sessions
<?php
session_start();
if (!$_SESSION['counted']) {
// Zähler in Datei/Datenbank erhöhen
$_SESSION['counted'] = true;
}
// rest der Seite


Das reicht um einfache Reloads zu verhindern, es sei denn der Angreifer
- löscht nach jedem Aufruf den Session-Cookie von deiner Seite bzw.
- entfernt jedes mal den PHPSESSID-Parameter aus der URL

Und ich glaube mal daß sich niemand längere Zeit diese Mühe machen wird.
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
IPs zu speichern ist nicht das schlauste - stellt euch einen Proxy vor, hinter dem dutzende anderer Rechner wären: besucht einer, gelten alle sofort als "gezählt". Ähnlich mit Providern mit dynamischer IP-Vergabe: vor 30min kann die IP des Besuchers noch eine ganz andere sein als jetzt.

Ach ja: spätestens die Suchmaschinen kümmern sich einen feuchten Dreck um Cookies und/oder SID-Parameter. Die meisten "Hits" kleiner Seiten bestehen nämlich gar nicht aus Besuchern, sondern aus Crawlern.
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Crawler bekannter Suchmaschinen wie Google, Yahoo, Microsoft, CUIL etc. kann man aber relativ einfach anhand der "User-Agent" Angabe und/oder der IP-Adresse ausfiltern; das kann sogar schon durch den Webserver geschehen, bevor das Script / die Seite überhaupt aufgerufen wird, etwa über mod_rewrite.

Schon eine einfache Überprüfung, ob der User-Agent das Wort "bot" enthält, reicht für simplere Anwendungen aus.

<?php
session_start();
if (stripos($_SERVER['HTTP_USER_AGENT'],'bot')===false) {
if (!$_SESSION['counted']) {
// Zähler in Datei/Datenbank erhöhen
$_SESSION['counted'] = true;
}
}
// rest der Seite


Die 3 === sind übrigens kein Tippfehler, das dient dazu um den Rückgabewert "false" (Teilzeichenkette nicht gefunden) vom Rückgabewert "0" (Teilzeichenkette an Position 0 gefunden) zu unterscheiden.
...