PHP Sichere API

Gsus

schwankend^^
ID: 215354
L
22 Mai 2006
1.553
68
Hallo,

Ich mache mir bereits seit einiger Zeit Gedanken ob es möglich ist eine API zu schreiben, die Daten eines Scripts an einen anderen Server übermittelt ohne, dass diese Daten von dem Besitzer des Scripts verfälscht werden können (oder das verfälschen zumindest sehr schwierig machen).

Das ganze soll genutzt werden, um Views/Besucher zu zählen, ohne dass der Besitzer der Website diese Daten verfälschen kann um sich einen Vorteil zu verschaffen. Zumindest beim Zählen der Views wird dies nicht möglich sein, da auch der Besitzer der Website die ganze Zeit F5 drücken kann um diese Zahl drastisch zu erhöhen, aber wie verhindert man das für die Besucher (mindestens IP-basiert)?

Mit freundlichen Grüßen,
Gsus
 
hallo Gsus!

eine hash code auf basis von MD5 wäre einen lösung.
den hash fügst einen sogennaten Salt (also salz) hinzu der dient als einen art Passwort
als beispiel
$meineVar = md5(Zielserver-salt-bisherige klicks);
damit hast du einen prüfsumme das salt solltes nur du haben
wenn das einen klick zählung werden soll würde ich an deiner stelle es mit handschlag prinzip machen.

Dazu sollte der zielserver eine grafik von dir einbinden diese läst du von einer PHP datei übermiteln beim aufruf der grafik läst du dir den Hash geben den du in einer tabelle eingetragen hast bei aufruf des links
wenn die grafik aufgerufen wird zählst du die klicks 1 hoch und löscht den hash aus der tabelle dann kann der nicht noch mal bestätigt werden.

sollte es der fall sein das der anbieter dich besch....en will würde in deiner DB Hash Keys über bleiben und du könntes sehen das er dich betrügt.

des weitern kannst du um mehrfach klicks zu vermeiden die Ip mit logen die den link aufgerufen hat und kannst das dann zur not sperren das jede IP nur 1 mal vergütet wird.

MFG
viktorskalin
 
Zuletzt bearbeitet von einem Moderator:
IP basierende Systeme bringen einen nie wirklich weit.
Zum einen kann ich mir innerhalb 1 Minute eine neue IP verschaffen, vll auch schneller und schon ist es hinfällig. Weiter Möglichkeit, man nutzt Anonymizer, oder Proxy und kann somit von seiner IP aus über Umwege dennoch pushen, weil die IP die die Anfrage stellt nicht die eigene ist.

Ein IP system bringt nur sinn, wenn man die IP nicht als hauptschlüssel berücksichtigt, sondern als einen kleinen nebenschlüssel.
Tag, Uhrzeit, Browser, OS, IP, Referer, ... sollten gekoppelt werden, wobei OS, Browser, Referer und IP unsichere Faktoren darstellen, da sie manipulierbar sind.

Also bleiben Dinge wie Uhrzeit und der Tag übrig als primäre nicht manipulierbare Ereignisse, da sie beim Aufruf der Seite generiert werden. Einen Counter der heutzutage zuverlässig zählt, könnte eventuell ein Geolocation System mitbenutzen.
D.h. wenn in kurzer Zeitaus einem bestimmten Bereich gehäufte Anfragen kommen, ohne das es einen erklärlichen Grund gibt, könnte man auf ein "Pushen" schließen. Könnte muss aber nicht sein.

Mehr sag ich mal nicht dazu