安全原因url部分隐藏?

时间:2012-05-03 12:08:16

标签: php mysql

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

"viewdosje.php?album=109"

通过更改URL中的数字,他可以看到其他剂量。隐藏URL的那一部分会很棒,还是我错了?请帮助我一些想法。我不知道从哪里开始。

3 个答案:

答案 0 :(得分:7)

您不应隐藏网址,而应验证对应用程序中资源的访问权限。当您在显示内容之前收到ID时,请执行数据库查询以查看当前登录用户是否可以访问该资源。

答案 1 :(得分:3)

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

如果这些员工记录中的数据是敏感/私人的,在大多数国家/地区,您有法律义务对其进行充分保护;即使没有法律要求,贵公司也可能希望避免将每个人的工资都纳入公共领域。

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

答案 2 :(得分:-3)

我没有PHP的实际经验,所以我无法帮助,但如果我用JSP或Rails解决这个问题,我可能会做以下事情:

也许将用户可识别信息存储在cookie中,一旦经过身份验证,将此信息与用户数据库进行比较?如果他们手动编辑网址,则阻止将网页提供给未经授权的用户。