2012-05-03 49 views
0

我的程序有一个很大的安全问题,我需要隐藏部分URL。我在网上搜索了一个解决方案,没有运气。在我的程序中,我有管理员和用户帐户 - 该程序仅仅是工作人员dosie的数据库。管理员可以查看所有剂量,但其他用户只能看到他们工作组中的剂量。所以我的问题是,当用户看到dosie时,访问信息的URL如下所示:“viewdosje.php?album = 108。问题是用户可以简单地更改专辑ID并且他可以看到其他剂量,这是不好的,例如:安全原因url部分隐藏?

"viewdosje.php?album=109" 

通过他可以看到其他dosies URL变化数这将是巨大的隐藏URL的一部分,还是我错了,请帮我一个?我不知道从哪里开始

+3

通过默默无闻的安全就像没有安全.. – peko

回答

7

您不应该隐藏url,而应该在应用程序中验证对资源的访问权限,当您收到ID时,在显示内容之前,执行一个DB查询当前登录用户是否有权访问该资源与否。

+4

迄今为止唯一的理智的答案 –

+0

@Darhazer是啊我说,没有简单的方法来保护数据,然后你写。谢谢。 –

-3

我和PHP没有实际经验,所以我不能帮那里,但如果我用JSP,或者Rails解决这个问题,我可以做到以下几点:

也许存储用户在cookie身份信息,一旦通过验证,将此信息与用户数据库进行比较?如果手动编辑网址,请阻止未经授权的用户使用该页面。

3

依靠“隐藏”URL是一个可怕的解决方案 - 任何人都可以访问该URL可以访问您的私人数据。可以通过各种方式访问​​URL - 通过JavaScript,通过猜测,通过访问浏览器历史记录,以及通过各种更加棘手的路线(如特洛伊木马,键盘记录器等)来嗅探网络流量(例如,在不安全的WIFI点)。

如果这些员工记录中的数据是敏感/私密的,那么在大多数国家,您都有法定义务保护它们;即使没有法律要求,您的公司可能也希望避免将所有人的工资纳入公有领域。

正确的解决方案是设计一个登录机制,并分配用户权限;当用户尝试访问他们无权访问的页面时,会向他们发送适当的错误消息。在PHP中有许多解决方案 - PEAR具有良好的实现。