V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icebreaker
V2EX  ›  PHP

Laravel TokenMismatchException 68 问题怎么解决?

  •  
  •   icebreaker · 2016-11-13 23:25:45 +08:00 · 2191 次点击
    这是一个创建于 2692 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本地 vagrant box 开发的时候没有任何问题, push 到远程 vps ( debian )上面,一直出现这个问题。 看了下 sessions 目录,似乎每请求一次都会生成不同的 session , 无法登录,注册, 表单提交的完全没法进行。

    google 没找到满意答案,冒昧这里问题,谁遇到同样的问题,最佳解决方案是?
    2 条回复    2016-11-14 09:47:01 +08:00
    Bantes
        1
    Bantes  
       2016-11-14 09:43:34 +08:00
    ###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  
       2016-11-14 09:47:01 +08:00
    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 来实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5257 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:18 · PVG 17:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.