【问题标题】:disable direct access to route in symfony2在 symfony2 中禁用对路由的直接访问
【发布时间】:2012-09-05 12:19:37
【问题描述】:

我创建了一个 symfony2 网页,其表单位于“/new”路由中。用户将输入发布到控制器,控制器呈现“/create”,如果成功,则调用最终路由“/thankyou”并出现感谢页面。

我想禁用对 /thankyou 路由的直接访问,该路由只能通过成功的 /create POST 访问。这适用于 /create(为什么?)但不适用于 /thankyou。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    您可以根据推荐人信息在“/Thankyou”操作中添加一些条件:

    $request->headers->get('referer');
    

    或者你可以像@Florian所说的那样在url中使用一些额外的参数。

    【讨论】:

      【解决方案2】:

      在路由中添加requirements: _method: POST 至少会限制对 POST 操作的访问。

      但我不确定您如何才能实现仅接受来自特定站点的 POST。也许使用一个特殊的令牌作为参数传递给你在控制器中检查可以做到这一点。

      【讨论】:

      • 显示一些你的路由、控制器和其他可能涉及的代码。我们无法修复我们看不到的东西。
      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      相关资源
      最近更新 更多