保护.NET MVC项目中的URL ID

时间:2011-10-13 11:19:25

标签: .net security asp.net-mvc-3

在我们的应用程序中,我们使用安全功能,以其他方式在路上创建id:

我们有例如:http://some.com/controller/action/12
在安全的情况下,它将是:http://some.com/controller/action/bs16gz

我们需要阻止自动保护(读取:不要在每个控制器中保护和取消安全ID)。所以它应该是一般解决方案,将在所有应用程序中自动实现。

有什么想法吗?

---- 为什么我们需要它? -----
我们希望阻止用户在QueryString中更改id以查找另一个项目

Exmaple:http://some.com/controller/action/12是一条记录,然后用户将id更改为13并查看另一条记录。我们的系统需要阻止这种行为。

1 个答案:

答案 0 :(得分:4)

我想知道你为什么需要那个。如果您不希望某人“在中间”看到这些ID,请使用SSL保护您的HTTP流量。如果您不希望用户访问其他用户的内容,请确保安全性。

但如果你仍然在保护身份证后,我认为模型绑定器是可行的方法:

class MyController 
{
    ActionResult Index(SecureID id) 
    {
        var resource = ResourceRepository.Get<Resource>(id); // implicit conversion to long