2010-07-11 6 views
1

J'écris une base de données pour un site Web. À côté des dossiers que je veux inclure un lien aime ça:Créer un lien à usage unique

Record 1 - [Add][1] [Edit][2] [Delete][3] 

Mais je veux protéger ces liens d'être utilisé plus d'une fois. Mon idée est de passer une valeur de hachage puis de stocker une liste de valeurs HASH valides dans une table quelque part et de traiter uniquement les requêtes avec des valeurs de hachage valides. Y a-t-il une meilleure façon de faire?

Mise à jour: La réponse à cette question m'a amené à poser cette question: What is the difference between a "nonce" and a "GUID"?. Pourquoi exactement utiliseriez-vous un nonce au lieu d'un GUID?

Répondre

2

Votre idée est correcte, sauf que vous devez utiliser des octets aléatoires cryptographiquement sécurisés (un "nonce") au lieu d'un hachage.

+0

J'espère trouver une méthode qui me permettrait de déterminer s'il s'agissait d'une première demande sans toucher à la base de données. Cela aiderait aussi à protéger contre les attaques DOS. –

+0

J'ai lu un peu plus sur la valeur "nonce". Est-ce vraiment la même idée que d'utiliser un hachage, mais en utilisant la valeur de nonce comme hash? Par exemple, si j'ai créé des valeurs GUID à l'aide du module Perl Data :: GUID et que j'ai utilisé celles-ci pour les valeurs de hachage, cela serait-il "nonce"? –

+0

Le but du nonce est d'être imprévisible. Si vous utilisez un hachage, vous devez utiliser un hachage HMAC SHA 512 avec une clé aléatoire, et vous devez changer la clé fréquemment. – SLaks

Questions connexes