【问题标题】:Unable to verify your data submission on forms无法验证您在表单上提交的数据
【发布时间】:2021-12-04 17:27:57
【问题描述】:

我的日志文件中有很多此类错误

2021-10-17 15:06:39 [60.54.140.90][1550][sf4vnas08uip2fd2avrqkdstd0][error][yii\web\HttpException:400] yii\web\BadRequestHttpException: Unable to verify your data submission. in /var/www/html/vendor/yiisoft/yii2/web/Controller.php:218
Stack trace:
#0 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(179): yii\web\Controller->beforeAction()
#1 /var/www/html/vendor/yiisoft/yii2/base/Module.php(534): yii\base\Controller->runAction()
#2 /var/www/html/vendor/yiisoft/yii2/web/Application.php(104): yii\base\Module->runAction()
#3 /var/www/html/vendor/yiisoft/yii2/base/Application.php(392): yii\web\Application->handleRequest()
#4 /var/www/html/frontend/web/index.php(64): yii\base\Application->run()
#5 {main}
2021-10-17 15:06:39 [60.54.140.90][1550][sf4vnas08uip2fd2avrqkdstd0][info][application] $_GET = []

$_POST = [
    '_csrf-frontend' => 'p3KtJP4UdPnnct2Nry4rEwBu1OxElrwqIAkYttxytW7AF-hIz0IZwd4tvuz5TXJBVByduiz810tOMVz8txjGFw=='
    'LoginForm' => [
        'login' => 'xxxxx@gmail.com'
        'password' => 'xxx1239836'
        'rememberMe' => '1'
    ]
    'ajax' => 'LoginForm'
]

在我的main.php

    'request' => [
        'enableCsrfValidation' => true,
        'csrfParam' => '_csrf-frontend',
        'enableCookieValidation' => true,
        'cookieValidationKey' => 'blabla-2021',
        'csrfCookie'=> [
            'httpOnly'=>true,
        ],
    ],

我的标题中确实有这个 <?= Html::csrfMetaTags() ?> 并且我不手动创建表单。

当我在本地主机上测试它们并且也可以使用时,表单可以正常工作。

知道为什么我会得到这个吗?以及如何解决?谢谢

更新

将我的main.php 更新到此,但仍然出现相同的错误

'request' => [
            'enableCsrfCookie' => false, //force application to store the CSRF token in session instead of cookie
            'csrfParam' => '_csrf-frontend',
            'enableCookieValidation' => true,
            'cookieValidationKey' => 'xxxxxxxxx',
        ],

【问题讨论】:

  • @HaimEvgi 我做了,我已经有 <?= Html::csrfMetaTags() ?> 并且我没有上传多个文件。
  • 您的 cookie 似乎设置为“httpOnly”,但请求类型似乎是通过 javascript(即 ajax)发出的,这意味着 js 无法访问 cookie。在这种情况下,您可能希望 js 可以使用 csrf cookie
  • @Sherif 我要一起删除$csrfCookie 吗?还是允许 javascript / ajax 帖子也访问 cookie?
  • 您可以尝试将 httpOnly 设置为 false。

标签: php apache amazon-ec2 yii yii2


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多