Question

Je dois générer UUID éventuellement stocker dans une base de données. Puis-je générer des thèses UUID de Javascript sur le navigateur client ( Il y a quelques exemples )?

Y at-il risque de sécurité de ce faire de cette façon? Je comprends que tout le monde peut modifier le UUID avant qu'il ne soit transmis au serveur pour le stockage. Donc, je vais devoir vérifier si elles sont trully uniques avant de les stocker dans la base de données, mais à part ça, est-il d'autres choses à Checkout?

(Désolé pour mon anglais, ne hésitez pas à corriger les erreurs de grammaire)

modifier Pour répondre aux questions au sujet de pourquoi je voudrais le faire, il est parce que je peux créer un nouvel objet et il est identifiant en Javascript et l'ajouter à mon avis, puis faire un appel AJAX le serveur pour l'ajouter à la base de données. De cette façon, je ne pas besoin de charger la base de données de retour pour savoir ce qui est il est identifiant principal.

Était-ce utile?

La solution

Pas vraiment. Tant qu'il est un simple identifiant et rien de plus, et vous vérifiez bien pour la validité et le caractère unique, il est pas différent que les comptes d'utilisateurs ayant un identifiant dans l'URL, par exemple.

Regardez la barre d'URL. Je parie que 1296234 est la clé primaire de cette question, mais je ne peux vraiment rien faire avec cette information. deal Même avec votre script.

Autres conseils

Quels sont les avantages que vous voyez dans la production de ces côté client? En toute honnêteté, la meilleure option est de générer côté serveur, sur les utilisateurs à atteindre. Il ne peut pas donner de vous épargner des problèmes de sécurité graves, mais il permettra de réduire la validation redondante.

Oui. Le risque est pas spécifique à UUID, tout côté client généré ID a des risques, en fonction de ce que vous faites avec l'ID. Le problème est qu'il est très difficile d'authentifier le Javascript. Si vous acceptez ID généré par le client, vous acceptez les ID des pirates.

Les risques peuvent inclure,

  1. stealing session. Si vous utilisez l'ID pour identifier la session, une personne peut utiliser un ID existant comme ID généré et le serveur peut traiter comme une session existante si des soins appropriés ne prend pas.

  2. Double des clés. Vrai UUID est aléatoire mais quelqu'un peut générer des clés en double qui gâchera votre base de données.

Vous pourriez trouver des moyens de se défendre contre chacune de ces attaques, mais c'est une protection passive. Il pourrait vaincre l'objectif initial de générer des ID sur le client, ce qui est simple.

Y at-il une raison quelconque vous ne pouvez pas avoir la base de données génère (incrément) une carte d'identité?

Si, comme vous dites, vous devrez vérifier l'unicité de la valeur avant de le soumettre de toute façon, pourquoi ne pas avoir tout simplement la langue que vous utilisez backend générer. Ce serait beaucoup plus opaque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top