2009-03-11 10 views
0

Quelle est la meilleure pratique pour générer une URL accessible au public, mais partagée via un canal secondaire, de sorte qu'elle soit en pratique privée pour le groupe qui la partage?Quelles sont les meilleures pratiques pour les URL publiques «privées»?

Quelque chose comme:

http://example.com/club/XX-XX-XX-XX
http://example.com/club/YY-YY-YY-YY

Où XX-XX-XX-XX partagé entre un groupe et AA-AA-AA-AA est partagé par un autre groupe. Si vous avez un code valide, il ne devrait pas être facile de deviner d'autres codes valides.

Aucune autre sécurité n'est requise pour l'URL.

+0

Un nombre aléatoire semblerait être un bon candidat, mais quelle devrait être la taille? –

Répondre

3

GUID s sont toujours un bon choix pour les ID uniques et sont très faciles à générer (mais regardez laid)

+0

Un guid contient 128 bits d'informations. Si nous supposons qu'un serveur web peut gérer 10K demandes/seconde, un devineur aurait besoin de plus de 1x10^27 ans pour essayer chaque possibilité à son tour. Cela semble excessif, donc quelque chose de plus court qu'un GUID sonne mieux pour moi. –

0

Pensez à utiliser Amazon S3, ils ont des URL exposées limitées dans le temps.

0

Je vous recommande de générer un UUID. Vous pouvez utiliser Java java.util.UUID et URLEncode/Decode sa représentation textuelle si votre back-end est en Java. Je suis sûr qu'il existe un équivalent dans .NET si vous utilisez ASP.NET.

0

Pour générer une partie de chemin d'URL, utilisez une forme de hachage (SHA1 fera l'affaire). Bien sûr, randomisé. chmod le répertoire où les fichiers se trouvent à 711 (rwx--x--x)

0

Une séquence aléatoire de caractères alphanumériques ferait l'affaire. Les caractères choisis parmi 26 lettres minuscules, 26 lettres majuscules et 10 chiffres répétés une douzaine de fois devraient largement suffire à votre besoin.

0

Vous êtes dans un compromis entre la complexité et la lisibilité (ou même la mémorisation). GUID offre un code «unique» qui, comme cela a été mentionné, est facile à générer, mais la lisibilité et la mémorisation sont faibles. Des chaînes de caractères aléatoires divisées arbitrairement pourraient également offrir une solution. Enfin, les mots anglais choisis au hasard seraient plus faciles à mémoriser et à communiquer et offriraient probablement toujours le même niveau d'isolement et de protection. Après tout, à moins que vos utilisateurs ne fassent preuve d'un historique d'adresses et d'un historique de navigation particulièrement diligents et désactivés, l'URL sera là pour que tout le monde puisse voir qui visite la machine par la suite.

Questions connexes