MVC3和URL篡改

山姆·乔利

关于此的很多文章,特别是:SO问题:URL篡改

其中包含一些有趣的方法。

我正在寻找一种务实的方法,其中一些包含在上面的文章中。我承认我在我的应用程序开发的后期来了这个问题。我的URL大体上具有传统的controller / action / id格式,因此很容易被篡改(正如我现在意识到的那样),并且还用于其他用户记录。我的ID是整数,这可能是一个错误。GUID会更安全吗?

也可以选择使用当前用户ID更广泛地验证数据库查询,即仅返回数据归当前用户所有。另一方面,这意味着要修改很多查询。

我还在MVC3 / EF4.1 / SQL Server 2008中使用成员资格服务。

非常感谢您的任何建议。

达林·迪米特罗夫(Darin Dimitrov)

您似乎在谈论应用程序中的资源和用户。因此,我假设您具有身份验证,用户应该在该身份上操纵属于他们的资源。您的问题是,通过替换idurl中的,当前用户可以操纵他不应该执行的其他用户的资源。

解决此问题的正确方法不是通过从URL隐藏ID,而是通过使用授权。因此,您可以编写一个风俗习惯AuthorizeAttribute该习俗将获取当前经过身份验证的用户和id,然后在数据库中(或在存储此信息的任何位置)验证此ID属于他。然后,当他执行控制器操作时,您将已经知道当前用户已被授权执行他要求对此资源执行的任何操作。

您可以看看this post of mine我在其中举例说明的方法。

因此,在处理此类情况时,请始终考虑以下事实:用户无法操纵的唯一伪像是他的身份验证票。因此,您获得的唯一保险是当前用户是谁。从这个事实开始,您应该基于自定义逻辑执行必要的授权。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC3和JSON模型绑定

来自分类Dev

在MVC3 ASP上创建到外部URL的链接

来自分类Dev

与MVC3和ASP.NET4.5异步

来自分类常见问题

Windows更新导致MVC3和MVC4停止工作

来自分类Dev

MVC3生成包含端口号的URL,如何停止它

来自分类Dev

如果结果等于MVC3 ASP中的字符串,则显示指向绝对URL的链接

来自分类Dev

GoDaddy Hosting将文件夹结构注入URL MVC3

来自分类Dev

如何通过MVC3中的表单集合传递@ Html.CheckBox的ID和名称

来自分类Dev

在控制器动作MVC3中获取表单字段和模型数据

来自分类Dev

Spring MVC3 @SessionAttributes和@ModelAttribute将自动从请求获取值

来自分类Dev

使用javascript和mvc3从Google驱动器下载文件

来自分类Dev

在控制器动作MVC3中获取表单字段和模型数据

来自分类Dev

onhashchange事件未检测到“ / Home / Index”和“ /”之间的更改-ASP.NET MVC3

来自分类Dev

.net MVC3 BeginTransaction()锁定表

来自分类Dev

什么是mvc3中的ReturnURL

来自分类Dev

在视图上显示MVC3 Unicode

来自分类Dev

Html.BeginForm MVC3

来自分类Dev

在mvc3上保存null DateTime

来自分类Dev

mvc3中的jQuery验证

来自分类Dev

mvc3如何返回存储库

来自分类Dev

MVC3验证摘要控件

来自分类Dev

按钱排序mvc3

来自分类Dev

mvc3 pagedlist背景选择

来自分类Dev

使用ASP.NET MVC3中的路由在URL末尾添加查询字符串

来自分类Dev

错误:名称“ URL”在asp.net mvc3的当前上下文中不存在

来自分类Dev

如何在MVC3的_Layout.CSHTML页面中调用和传递c#帮助代码?

来自分类Dev

从MVC3应用程序序列化,返回和使用复杂的C#对象的最佳方法是什么?

来自分类Dev

将ASP.NET项目和MVC3组合在一个解决方案中

来自分类Dev

如何从MVC3的_Layout.CSHTML页面调用和传递c#帮助程序代码?

Related 相关文章

  1. 1

    MVC3和JSON模型绑定

  2. 2

    在MVC3 ASP上创建到外部URL的链接

  3. 3

    与MVC3和ASP.NET4.5异步

  4. 4

    Windows更新导致MVC3和MVC4停止工作

  5. 5

    MVC3生成包含端口号的URL,如何停止它

  6. 6

    如果结果等于MVC3 ASP中的字符串,则显示指向绝对URL的链接

  7. 7

    GoDaddy Hosting将文件夹结构注入URL MVC3

  8. 8

    如何通过MVC3中的表单集合传递@ Html.CheckBox的ID和名称

  9. 9

    在控制器动作MVC3中获取表单字段和模型数据

  10. 10

    Spring MVC3 @SessionAttributes和@ModelAttribute将自动从请求获取值

  11. 11

    使用javascript和mvc3从Google驱动器下载文件

  12. 12

    在控制器动作MVC3中获取表单字段和模型数据

  13. 13

    onhashchange事件未检测到“ / Home / Index”和“ /”之间的更改-ASP.NET MVC3

  14. 14

    .net MVC3 BeginTransaction()锁定表

  15. 15

    什么是mvc3中的ReturnURL

  16. 16

    在视图上显示MVC3 Unicode

  17. 17

    Html.BeginForm MVC3

  18. 18

    在mvc3上保存null DateTime

  19. 19

    mvc3中的jQuery验证

  20. 20

    mvc3如何返回存储库

  21. 21

    MVC3验证摘要控件

  22. 22

    按钱排序mvc3

  23. 23

    mvc3 pagedlist背景选择

  24. 24

    使用ASP.NET MVC3中的路由在URL末尾添加查询字符串

  25. 25

    错误:名称“ URL”在asp.net mvc3的当前上下文中不存在

  26. 26

    如何在MVC3的_Layout.CSHTML页面中调用和传递c#帮助代码?

  27. 27

    从MVC3应用程序序列化,返回和使用复杂的C#对象的最佳方法是什么?

  28. 28

    将ASP.NET项目和MVC3组合在一个解决方案中

  29. 29

    如何从MVC3的_Layout.CSHTML页面调用和传递c#帮助程序代码?

热门标签

归档