【问题标题】:CakePHP: False positive authError with ACLCakePHP:带有 ACL 的误报 authError
【发布时间】:2011-09-29 07:31:27
【问题描述】:

我已经在我公司的现有站点中使用 CakePHP 建立了一个有效的 ACL 系统。访问限制完美运行,无权访问网站特定部分的组和单个用户会收到一条 authError 消息,说明他们没有适当的权限。

唯一的问题是在 Firefox 中我有时会得到 - 我想称之为 - 误报。这意味着,即使用户可以访问某个控制器和操作,authError 仍然会弹出。奇怪的是,视图仍然正确渲染,除了 authError 没有任何问题。一切正常,用户可以看到他们需要看到的内容。只是有时仍会显示 authError。

现在这种情况在 Firefox 中有时会随机发生,但在 IE8 中这种情况一直都在发生。即使用户拥有对整个站点的完全访问权限,authError 消息仍会显示在 IE8 的每个页面上。我没有检查这个问题是否在其他 IE 浏览器中仍然存在,但是由于它在 IE8 和 FF 中都发生,我的想法是它们可能也存在于其他浏览器中。

现在我无法理解为什么会发生这种情况,因为这里没有真正的模式。在 FF 中 authError 随机给出一个误报,而在 IE8 中它只是一直显示。

有人可能会争辩说,出于某种原因,在 authError 消息被“执行”后检查了用户权限。即使已显示错误消息,仍可进行正确访问。我已经检查过页面的加载时间是否与它有关,但似乎不是这样。

周围是否有用户知道导致此问题的原因是什么?提前致谢!

【问题讨论】:

  • 我会检查您的页面中是否有一些内容试图访问受保护的 URL(我想到了 Ajax 请求、指向受保护操作的图像的错误 URL 等)。它将在会话中设置一个 Auth 错误消息,该消息将在下一页加载时显示。 Firefox 和 IE 之间的行为差​​异可以通过不同的缓存策略来解释。

标签: php cakephp acl


【解决方案1】:

我不完全确定为什么会发生这种情况,我不知道您是否能够弄清楚您的问题。但是,我也在运行 ACL 并且遇到了类似的问题,我想我会在这里发布它并希望对某人有所帮助。

我有一个 Articles 控制器,我需要公开 indexview 操作。无论我做什么,都没有任何效果。我仍然会得到相同的not authorized error。经过无数个不眠之夜的尝试和尝试,我发现,尽管我请求 view 动作,但视图动作中引用的任何其他动作,如 getRelatedgetComments 都必须也可以添加。

问题已解决,至少我是这么认为的。但是,间歇性地,错误会一次又一次地弹出。同样的问题,同样的错误。现在,我可以访问 View 操作,但不能访问 Index,尽管 $this->Auth->allow 似乎一切都很好

经过多次挠头后,我发现我必须对我的类别控制器执行相同的操作。在这个控制器中,我创建了一个 getRelated 操作,它将根据其类别检索与特定文章相关的所有文章。

一旦我这样做了,现在我所有的问题都消失了,我还没有遇到过类似的问题。现在我可以真正专注于项目的其他部分了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2013-01-11
    • 2011-03-03
    • 1970-01-01
    相关资源
    最近更新 更多