0

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

"viewdosje.php?album=109"

通过更改 URL 中的数字,他可以查看其他文件。隐藏 URL 的那部分会很棒,还是我错了?请帮我想出一个主意。我不知道从哪里开始。

4

3 回答 3

7

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

于 2012-05-03T12:13:10.400 回答
3

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

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

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

于 2012-05-03T12:17:26.173 回答
-3

我没有真正的 PHP 经验,所以我无能为力,但如果我用 JSP 或 Rails 解决这个问题,我可能会执行以下操作:

也许将用户身份信息存储在 cookie 中,一旦通过身份验证,将这些信息与用户数据库进行比较?如果未经授权的用户手动编辑 url,请防止页面被提供给他们。

于 2012-05-03T12:14:05.630 回答