Веб-сокеты Laravel и атрибут Chrome `SameSite`

Так что есть много вопросов об этом бизнесе того же сайта, но я не могу найти ответов, когда речь идет о веб-сокетах Laravel< /а>. В их документации об этом ничего нет.

Поэтому я подумал, что могу спросить здесь и посмотреть, есть ли у вас, ребята, какие-нибудь идеи.

Рассмотрим следующую конфигурацию:

import Echo from 'laravel-echo'

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    wsHost: window.location.hostname,
    wsPort: 6001,
    wssPort: 6001,
    disabledStats: true,
    encrypted: false,
    enabledTransports: ['ws', 'wss'],
    namespace: 'App',
    auth: {
      headers: {
        'X-CSRF-TOKEN': token.content
      }
    }
});

Согласно их документам, они используют толкатель библиотека, но нет никаких указаний на то, что она действительно попала на веб-сайт толкателя. И мне не нужны никакие учетные данные толкателя, поскольку они все поддельные.

Проблема проста:

Файл cookie, связанный с межсайтовым ресурсом по адресу http://support.pusher.com/, был установлен без SameSite атрибут. Будущая версия Chrome будет доставлять файлы cookie с межсайтовыми запросами только в том случае, если они установлены с помощью SameSite=None и Secure. Вы можете просмотреть файлы cookie в инструментах разработчика в разделе «Приложение»> «Хранилище»> «Файлы cookie» и просмотреть более подробную информацию по адресу https://www.chromestatus.com/feature/5088147346030592 и https://www.chromestatus.com/feature/5633521622188032< /а>.

Что по всему переполнению стека.

Я disableSats, и хотя да, веб-сокеты все еще работают и работают нормально, в конечном итоге хром будет похож на «нет». Так что я понятия не имею, является ли это эмитентом толкателя, проблемой веб-сокетов laravel или чем-то еще.

Есть ли у кого-нибудь идеи о том, что я мог бы сделать или попытаться сделать? Я попытался установить forceTLS: true в приведенной выше конфигурации, и это, похоже, работает, но тогда веб-сокеты не будут подключаться.

Я беспокоюсь, что однажды мое приложение просто перестанет работать, так как мы зависим от веб-сокетов для многих функций, и это одна из самых простых и лучших библиотек, которые не требуют нескольких дней исследований и настройки.


person TheWebs    schedule 10.01.2020    source источник
comment
Можете ли вы попробовать это в сеансе инкогнито, гарантируя, что вы сначала не посещаете какие-либо сайты Pusher? Файл cookie от support.pusher.com для меня звучит так, как будто вы, возможно, посетили форум поддержки в своем браузере, и там есть файл cookie, который все еще отправляется с запросами в любой домен pusher.com.   -  person rowan_m    schedule 13.01.2020
comment
В режиме инкогнито предупреждение не отображается, как указано I. Проблема указана выше. Я удалил все куки со страницы, перезагрузил и все равно получил предупреждение @rowan_m   -  person TheWebs    schedule 13.01.2020


Ответы (1)


Во-первых, мы должны понять рабочий процесс этой операции.

Вот пример;

Your laravel backend
            ▼
[pub/sub service (can be redis pusher etc..)]
            ▼
laravel echo server
            ▼
websocket client ( mostly laravel echo client)

На стороне клиента

Websocket (mostly laravel echo client)
            ▼
Laravel echo server 
            ▼
http request to laravel backend

Если вы пытаетесь найти трассировку со стороны клиента на веб-сайт толкателя, это невозможно, ваш клиент реагирует с эхо-сервером laravel.

Если вы хотите отследить эхо-сервер laravel до толкателя, вам необходимо отладить эхо-сервер laravel.

В вашем случае, скорее всего, толкатель работает нормально (я некоторое время пользовался их услугами, никогда не видел проблем), если вы хотите это отладить. Вы можете использовать сервер redis и подключить эхо laravel к redis (и он работает в вашей локальной сети, намного быстрее, чем pusher)

Надеюсь, это поможет.

person Hasan Veli Soyalan    schedule 19.01.2020