2016-01-29 1 views
0

J'ai toujours un problème et je n'arrive pas à trouver un moyen de le résoudre.asp.net mvc champ caché id numéro

Par exemple, dans le scénario de mvc asp.net, l'utilisateur "A" a ses produits:

A1(id=1),A2(id=2). 

Si nous éditons A1, dans Edit.cshtml, ID A1 = 1 est tout simplement enregistré dans un champ caché. Nous pouvons modifier l'Id de A1 à 2 avec l'outil de développement du navigateur, de sorte que les valeurs modifiées seront effectuées pour A2 lors de la publication sur le serveur, bien que nous effectuions une validation côté serveur. Mais l'utilisateur A a suffisamment de droits pour modifier tous ses produits A1 A2. Donc, dans ce cas, comment empêcher les utilisateurs de piratage? Je pense aussi à montrer l'id de produit dans l'url; alors l'utilisateur ne peut pas le modifier lors de la mise à jour.

Je suis nouveau sur MVC - peut-être avez-vous une idée ou quelle est la méthode générale pour résoudre ce problème?

+0

Si vous avez vraiment peur d'une utilisation piratage de leurs propres produits (je ne sais pas pourquoi) alors [cet article] (http://blog.slatner.com/2010/01/20/SecuringFormValuesInASPNETMVC.aspx) discute d'une technologie –

+0

assurez-vous d'avoir une bonne autorisation en place. Peut-être avant d'éditer, vérifiez s'ils sont autorisés à éditer avant d'aller de l'avant, Aussi c'est pourquoi je préfère utiliser GUID (pas facile pour un utilisateur de prédire) pour de telles choses au lieu d'entiers. – dansasu11

Répondre

0

Ce plus ne pas être une préoccupation, est encore une question valable, comment j'ai résoudre ce problème, bien simple, au lieu d'utiliser Id clair que je vais cryptez les id, le modèle ressemblera:

public class ProductSafe 
{ 
    public string Id {get; set;}\\encrypted 
    public string Something {get; set;} 
} 

En utilisant ce que vous souhaitez crypter, lorsque vous obtenez l'ID de l'objet est crypté, lorsque vous enregistrez le modèle décrépit pour obtenir l'ID réel.