Laravel POST для Nginx вызывает HTTP 400Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel POST для Nginx вызывает HTTP 400

Сообщение Anonymous »

  • Я использую Apache для разработки и Nginx на новом рабочем сервере, который я только что предоставил.
  • В моем проекте Laravel есть форма (X), которая приводит к HTTP 400 при отправке POST в Nginx с использованием Chrome. Она не похожа на типичную страницу ошибки Laravel

    Код: Выделить всё

    Oops! An Error Occurred
    The server returned a "400 Bad Request".
    Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.
    
  • Код: Выделить всё

    storage/logs/laravel.log
    также пуст, когда отображается HTTP 400, что подтверждает, что это не ошибка, сгенерированная PHP.
  • Когда я формирую X POST для того же кода, работающего на Apache, я получаю HTTP 200.
  • Еще более странно, когда я отправляю POST в Nginx, используя другую форму, например вход, он возвращает HTTP 200.
  • В совокупности это представляет для меня довольно запутанную картину.
  • Я предоставил свою конфигурацию Nginx, блейд и воспроизведение запроса с помощью Curl с помощью Chrome.
  • Я пытаюсь понять, почему это происходит на Nginx и каковы мои варианты правильной POST для обоих типов серверов, учитывая, что я могу контролировать только блейд
  • Смотрите журналы Nginx из моего оригинала ОП https://stackoverflow.com/revisions/f5b ... iew-source
Конфигурация Nginx

Код: Выделить всё

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";

index index.php;

charset utf-8;

index index.html;

# Security Headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob;" always;

error_page 404 /index.php;

location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
Лезвие

Код: Выделить всё

@csrf
Submit

Воспроизведение Nginx HTTP 400 с помощью Curl (сгенерированного Chrome)

Код: Выделить всё

curl 'https://example.com' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-b 'XSRF-TOKEN=eyJpdiI6Ik9lK0JLZWhqWEUrOVR6TWxtYWgyMHc9PSIsInZhbHVlIjoiQys0N0ZNOFpXZGR6SFcyaGk5d0w1LzBDblFNQmF6b045WmV1UjR2Z2xUZFA0RFRFMVhWQjA5Y0M2d2pjRzdNSUFSRzc5cmc5NlhKWUdQUmZoUDI4RDJzbnMvMUhWd0IzNVREbG5XRHVRM1Y2Mm1xY1NwL2V4ckpiV2pKQThyVm8iLCJtYWMiOiI0MWVjM2U2NWI4OTNkZmFlMDkzZDgwNzE2NmVmM2Y4MDI2NGIxMGZjZjc1OTFhZDBmMGY4ZTBiMDk3MmU4NzVjIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6ImhYZXhLZHl4K1FEVC9HcVR6OXdwcmc9PSIsInZhbHVlIjoiZjcvRGlYSEJXSGIvanBuQmdPNlVnMENGWmxyTURPbGJNNHprUVV5ZDg5ck8rWXJCQ2FPM2FXZ2NCczRSVXVFNUlVRkpweVdHOGpYQnFTcUlGTk1MVTBaZG10UlprK3g1UitENUd6K0VWMklSSTBPNld1NG5pMU5jakN2c2taYWwiLCJtYWMiOiIyZTMyODQ4MjI4MjY1YmExMWZlNDdhNTdjZWIxZTQ3NDM5OTQ1NDY4OWExNWM0ZTE5YzBlNDk5ZjExMGY5ZTQ3IiwidGFnIjoiIn0%3D' \
-H 'dnt: 1' \
-H 'origin: https://example.com' \
-H 'pragma: no-cache' \
-H 'priority: u=0, i' \
-H 'referer: https://example.com' \
-H 'sec-ch-ua: "Google Chrome";v="141", "Not?A_Brand";v="8", "Chromium";v="141"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
-H 'sec-fetch-dest: document' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-fetch-user: ?1' \
-H 'upgrade-insecure-requests: 1' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36' \
--data-raw '_token=&email=dibo%40example.com&name=Amal+Britt&mobile_number=1&workshop_date=inform_next_webinar&push-subscription-data=&g-recaptcha-response='
ОБНОВЛЕНИЕ
После дальнейшего устранения неполадок виновником оказался -b 'XSRF-TOKEN=.... Как мне настроить Nginx на его принятие? Добавление big_client_header_buffers 8 16k; в конфиг Nginx не помогло.


Подробнее здесь: https://stackoverflow.com/questions/798 ... s-http-400
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»