2010-12-13 11 views
0

le type de projet est MVC2. Disons que j'ai page1. Après le succès, il écrit quelque chose à ramer et obtient un nouvel identifiant de ligne inséré et redirige vers une autre page et envoie l'identifiant de ligne comme paramètre. et l'utilisateur peut voir ce paramètre sur querystring. et peut le changer. Je pense que c'est un problème dans certaines situations (pages). J'utilise pour cela une entrée cachée et après la vérification du paramètre de la chaîne de requête avec la valeur d'entrée cachée. si elles ne sont pas égales, alors écrire dans le journal et rediriger vers la page d'erreur. Mon chemin est-il correct? ou avoir une bonne méthode.asp.net MVC QueryString

... merci

Répondre

3

ID Révéler comme celui-ci est assez standard et est ce qui permet de bookmarking du navigateur de travail des éléments spécifiques. Votre travail consiste à s'assurer que l'utilisateur ne peut voir et modifier que les enregistrements qu'il devrait pouvoir. Si l'utilisateur effectue un piratage d'URL et saisit l'URL d'un élément qu'il n'est pas autorisé à voir ou à modifier, vous pouvez soit le renvoyer vers la page parent, soit lui envoyer un message Access Denied, en fonction de l'application. /le contexte.

La ligne du bas ne fait jamais confiance à l'entrée de l'utilisateur, y compris aux paramètres masqués.

+0

oui j'ai ajouté un champ à chaque table. ce champ a une certaine valeur que les utilisateurs ont aussi. disons que si l'utilisateur est enregistré dans la branche 952200, il ne peut voir que les lignes dont this.Field.IsEqual (952000). je l'ai fait. tu dis que dans chaque opération je dois vérifier si l'utilisateur peut modifier cette ligne. Oui? – AEMLoviji

+0

Bonne réponse. Le problème avec un champ caché tel que suggéré par le demandeur est que l'utilisateur peut également le modifier, ce qui revient à ce que Red a dit: ne jamais faire confiance à l'utilisateur. –

+0

vous dites que sur éditer d'abord je dois vérifier si l'utilisateur peut éditer cette rangée ou pas. après succès enregistrer à DB. j'ai raison? – AEMLoviji