Comment vous assurer correctement qu'un utilisateur ne falsifie pas les valeurs de la chaîne de requête ou les valeurs de l'URL d'action? Par exemple, vous pourriez avoir une action Delete Comment sur votre CommentController qui prend un CommentID. L'action url pourrait ressembler à/Comments/Delete/3 pour supprimer le commentaire avec l'id 3.Sécurité avec des valeurs QueryString dans Asp.net MVC
Maintenant, évidemment, vous ne voulez pas que quelqu'un soit en mesure de supprimer le commentaire 3. Normalement sur le propriétaire du commentaire ou un administrateur a permission de le faire. J'ai vu cette sécurité appliquée de différentes manières et j'aimerais savoir comment certains d'entre vous le font.
Effectuez-vous plusieurs appels à la base de données pour récupérer le commentaire et vérifier que l'auteur du commentaire correspond à l'utilisateur qui appelle l'action de suppression?
Passez-vous à la place le CommentID et l'ID utilisateur à la procédure stockée qui effectue la suppression et effectuez une suppression où ID utilisateur et CommentaireID égalent les valeurs transmises?
Est-il préférable de chiffrer les valeurs de chaîne de requête?
Alors, comment proposez-vous que je modifier/supprimer des choses puis? Gardez à l'esprit que j'utilise Asp.net MVC – Vyrotek
Vous devriez POSTing à vos méthodes de contrôleur pour invoquer une suppression - et vérifier les informations d'identification de la requête (cookie/nom d'utilisateur/mot de passe/quoi que ce soit) avant d'effectuer la suppression. Voir le post de @ Schotime. –