Sublink verschleiern

CaptNick

Mitglied
Folgende Situation:

domain: www.xyz.de/index.php?a=irgendwas&test

der link wird vorher generiert und darf angeklickt werden...

gibt es eine möglichkeit den "Sublink" test der mit GET übergeben wird so zu "verschlüsseln" das der link nur eine bestimmte Zeit (60 sekunden oder solange das Fenster nicht geschlossen wird).

also nicht eine verschleierung mit md5, sondern dass der link jedes mal neu "berechnet" wird so dass dieser nicht weitergeben wird?

Hintergrund: soll ein "anonymes Auktionssystem" in einem Spiel werden, damit man nicht so leichter zwischen den Spielern pushen kann und einfach den Link an Freunde weitergibt um dann gegenseitig hochzubieten...
 
Hi

Für die Linkerzeugung:

a) Irgendwo in PHP einen (fixen) langen String mit zufälligem wirrem Inhalt machen,
zB. https://www.random.org/cgi-bin/randbyte?nbytes=200&format=h hilft da schnell weiter
Nennt sich "Salt".

b) Der ausgegebene Link braucht in den Parametern nicht nur die eigentlichen Daten, sondern auch den Ausgabezeitpunkt (in Millisekundenauflösung für schnelle Wertänderung bei mehrmaliger Verwendung.)

c) Noch ein weiteres Datending als zusätzlichen Linkparameter, das vor Ausgabe berechnet wird:
Die "normalen" Daten, den Zeitpunkt und den Saltstring verketten und zB. SHA3 darauf anwenden (nicht MD5).
Das SHA3-Ergebnis eben auch als Teil von dem Link mit ausgeben.

Pseudocode:
Code:
$salt = 'ioasd983jed9wjd98juisfjs8uefe...usw.usw.';

$address = 'http://www.blabla.com/blub.php';
$param = 'a=1&b=2&c=3';
$timestamp = microtime();
$hash = sha3($param . $timestamp . $salt);
echo $address . '?' . $param . '&ts=' . $timestamp . '&hash=' .$hash;

Für die Prüfung, ob ein aufgerufener Link noch gültig ist, müssen beide der folgenden Kriterien erfüllt sein:
a) Die im Link enthaltene Ausgabezeit ist noch nciht zu lang her.
b) Die SHA3-Berechnung mit den Normaldaten vom Link, der Zeit vom Link
und dem Salt vom PHP-Script muss das Selbe wie den SHA3-Wert vom Link ergeben.

Leicht geändert könnte man auch eine Beschränkung auf Benutzer-IDs machen statt auf einen Zeitraum
 
Zuletzt bearbeitet:
Für die User-ID nimmt man beim Link-Generieren eben die ID statt der Zeit,

und bei der Prüfung (Teil a) geht es nicht darum ob die Zeit neu genug ist,
sondern ob die ID zum gerade angemeldeten User passt.

Der Rest analog zu oben.
 

Neue Beiträge

Zurück