【发布时间】:2012-09-05 12:19:37
【问题描述】:
我创建了一个 symfony2 网页,其表单位于“/new”路由中。用户将输入发布到控制器,控制器呈现“/create”,如果成功,则调用最终路由“/thankyou”并出现感谢页面。
我想禁用对 /thankyou 路由的直接访问,该路由只能通过成功的 /create POST 访问。这适用于 /create(为什么?)但不适用于 /thankyou。
【问题讨论】:
标签: symfony
我创建了一个 symfony2 网页,其表单位于“/new”路由中。用户将输入发布到控制器,控制器呈现“/create”,如果成功,则调用最终路由“/thankyou”并出现感谢页面。
我想禁用对 /thankyou 路由的直接访问,该路由只能通过成功的 /create POST 访问。这适用于 /create(为什么?)但不适用于 /thankyou。
【问题讨论】:
标签: symfony
您可以根据推荐人信息在“/Thankyou”操作中添加一些条件:
$request->headers->get('referer');
或者你可以像@Florian所说的那样在url中使用一些额外的参数。
【讨论】:
在路由中添加requirements: _method: POST 至少会限制对 POST 操作的访问。
但我不确定您如何才能实现仅接受来自特定站点的 POST。也许使用一个特殊的令牌作为参数传递给你在控制器中检查可以做到这一点。
【讨论】: