2014-04-02 81 views
0

在某些网页或视图中,我将信息显示在表格中。列值呈现为链接。通过网址更改保存信息

问题:

  1. 当我将鼠标悬停在链接,它的网址是在浏览器底部可见。
  2. 当我点击链接时,显示URL中请求的资源信息。 (www.someurl.com/Employee/67给了我员工id = 67的信息)。

    现在,该URL显示在浏览器中。如果更改URL,以www.someurl.com/Employee/88,它显示了ID = 88虽然登录的用户是不应该看到的信息员工ID 88

这是严重的安全员工的信息漏洞。

我想以下为可能的解决方案:

URL屏蔽在应用程序级的URL

Base64编码,以缩短和混淆,所以用户不能只是扔在URL值。

@Html.AntiForgeryToken()ValidateAntiForgeryTokenValidation机制

是否有更好,更安全的做法除了上面来解决这个问题?

回答

2

检入控制器服务于www.someurl.com/Employee/88,如果当前已通过身份验证的用户可以访问ID为88的员工,并且在他没有的情况下抛出异常 - 无需屏蔽网址。

2

如果用户不应该能够看到身份证号为88的员工,则他们不应该能够看到身份证号为88的员工的信息。该URL或多或少不相关,并且位于您的这种情况只能给他们一个关于如何获得未经授权的访问系统数据的明显线索。

您需要一个适当的安全计划,其中数据只能通过业务层从数据库提供给UI,如果登录用户被授权查看该数据。

1

这是我关于你的第一种方法的安全漏洞的想法:

混合一些GUID或复杂的结构,你的ID在发送它,当你收到它,从这个拿出你的ID,然后继续。 [你的掩饰想法]