0

我正在建立一个网站,为每个用户提供一个私人主页,其中包含他们可以看到但其他人看不到的内容。如果用户是页面的所有者,则 _menu 处理程序中的回调允许访问,否则拒绝访问;一切都很好。

我刚刚修改了该页面,使其内容由一组框而不是一大袋代码组成。内容正确地组合在一起,但有一个问题:如果用户 A 查看用户 B 的私人页面,他应该得到一个拒绝访问页面。但是,这些块仍然被调用,它们的内容仍然在页面上结束,这样用户 A 可以看到用户 B 的私人内容。该页面也没有得到通常的“您无权访问此页面”。通常显示在拒绝访问页面上的消息。

我完全不明白为什么会这样。我可以通过为它们提供一些设计合理的“在特定页面上显示块”功能来阻止它们运行,但是仍然发生了一些事情,(a)看起来不正确,(b)我不明白。总之,这让我对网站访问控制发生的事情有一种不好/有趣的感觉,尤其是它与块相关的方式。有人可以在这里提供任何见解吗?谢谢!

4

1 回答 1

0

您应该在挂钩菜单中创建访问回调函数来进行访问检查。否则,即使您不渲染任何内容,用户也可以看到内容。由于块不是通过菜单回调创建的,因此它们会正常呈现。

供参考,请参阅:hook_menu

于 2011-01-14T10:59:52.993 回答