icebreaker
V2EX  ›  PHP

Laravel TokenMismatchException 68 问题怎么解决?

  •  
  •   icebreaker · Nov 13, 2016 · 2965 views
    This topic created in 3467 days ago, the information mentioned may be changed or developed.
    本地 vagrant box 开发的时候没有任何问题, push 到远程 vps ( debian )上面,一直出现这个问题。 看了下 sessions 目录,似乎每请求一次都会生成不同的 session , 无法登录,注册, 表单提交的完全没法进行。

    google 没找到满意答案,冒昧这里问题,谁遇到同样的问题,最佳解决方案是?
    2 replies    2016-11-14 09:47:01 +08:00
    Bantes
        1
    Bantes  
       Nov 14, 2016
    ###CSRF 防护###
    <p>在 web 路由文件中所有请求方式为 PUT 、 POST 或 DELETE 的 HTML 表单都会包含一个 CSRF 令牌字段,否则,请求会被拒绝。关于 CSRF 的更多细节,可以参考其文档:</p>
    <pre><code><form method="POST" action="/profile">
    {{ csrf_field() }}
    ...
    </form></code></pre>
    Bantes
        2
    Bantes  
       Nov 14, 2016
    CSRF 防护
    在 web 路由文件中所有请求方式为 PUT 、 POST 或 DELETE 的 HTML 表单都会包含一个 CSRF 令牌字段,否则,请求会被拒绝。关于 CSRF 的更多细节,可以参考其文档:
    <form method="POST" action="/profile">
    {{ csrf_field() }}
    ...
    </form>

    跨站请求伪造是一种通过伪装授权用户的请求来利用授信网站的恶意漏洞。 Laravel 使得防止应用遭到跨站请求伪造攻击变得简单。

    Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,该令牌用于验证授权用户和发起请求者是否是同一个人。

    任何时候在 Laravel 应用中定义 HTML 表单,都需要在表单中引入 CSRF 令牌字段,这样 CSRF 保护中间件才能够正常验证请求。想要生成包含 CSRF 令牌的隐藏输入字段,可以使用辅助函数 csrf_field 来实现
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4537 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    ♥ Do have faith in what you're doing.