¿Cómo se asegura adecuadamente que un usuario no altere los valores de la cadena de consulta o los valores de la URL de acción? Por ejemplo, puede tener una acción Eliminar comentario en su CommentController que toma un CommentID. La url de acción podría verse como/Comments/Delete/3 para eliminar el comentario con el id 3.Seguridad con los valores de QueryString en Asp.net MVC
Ahora, obviamente, no desea que nadie pueda eliminar el comentario 3. Normalmente, el propietario del comentario o un administrador tiene permiso para hacerlo He visto esta seguridad impuesta de diferentes maneras y me gustaría saber cómo algunos de ustedes lo hacen.
¿Realiza varias llamadas a la base de datos para recuperar el comentario y comprobar que el autor del comentario coincide con el usuario que invoca la acción de eliminación?
En su lugar, transfiere el ID de comentario y el ID de usuario al procedimiento almacenado que realiza la eliminación y realiza una eliminación donde ID de usuario e ID coinciden con los valores pasados?
¿Es mejor encriptar los valores de cadena de consulta?
Entonces, ¿cómo sugieres que editar/borrar cosas ¿entonces? Tenga en cuenta que estoy usando Asp.net MVC – Vyrotek
Debería estar POSTING a sus métodos de controlador para invocar una eliminación y verificar las credenciales de solicitud (cookie/nombre de usuario/contraseña/lo que sea) antes de realizar la eliminación. Ver la publicación de @Schotime. –