2016-12-10 44 views
0

Zfcuser提供一个选项以重定向到指定的路由与查询参数“重定向”这样的:ZF3 Zfcuser重定向PARAM不起作用

/user/login?redirect=/en/about 

Zfcuser 1. *版本上ZF2完美的作品。但最近我迁移到ZF3和Zfcuser 2.0.0版本,并注意到这个功能不起作用。

所有配置都正确。有人遇到同样的问题吗?

回答

0

我对这个问题做了更多的研究,看来模块不支持将uri作为重定向参数传递。它只接受命名路线。还有一个编码方面的问题,当使用像“home/about”这样的路由时,由于urlencoded应解码的“/”而导致失败。

我分叉了模块回购,并解决这个问题。还提供了一个选项,不仅可以传递命名路由,而且还可以传递特定的URI https://github.com/ivok/ZfcUser/tree/redirect

+1

传递URI是一个安全漏洞,请查看@ geeh对OWASP top 10的解释(https://www.youtube.com/看?v = qMkiZ3Ehv5M),可能是这个问题上最简单的话题之一。只使用命名路线就像拥有一个白名单,并保护您和您的用户。 –

+0

我不知道。我看了演讲。 – Ivo

+0

但我现在在想什么。当我们传递一些URL作为重定向参数时,框架的路由器尝试匹配路由并加载内容。所以如果你传递的是不合法的URI或某种对我们网站有某种威胁的查询,那么路由器将不会匹配它,并且会返回404或其他内容。如果这样做,那么问题就是其他。但在我们的例子中,当我传递一个重定向URI时,首先要做的是验证该URI - 路由是否匹配这个url。如果它没有 - 它设置为空,这个重定向参数已经消失。如果是,那么URI是有效的。 – Ivo