#spring #web #browser #instagram #http-status-code-403
#spring #веб #браузер #Instagram #http-status-code-403
Вопрос:
Наше приложение Spring используется для бронирования различных услуг. Обычно наши клиенты перечисляют свои услуги в своей биографии в Instagram. Когда пользователь нажимает на ссылку в биографии Instagram, наше приложение открывается в браузере Instagram.
В критической точке потока наше приложение обнаруживает 403. Это 403 происходит не всегда. Но когда это происходит, это происходит только для некоторых пользователей на iPhone, которые перемещаются в браузере Instagram. Никакая другая комбинация устройства / браузера не вызывает этого. Этот 403 вызывает у нас серьезные проблемы.
Токен CSRF включен в качестве скрытого элемента в отправляемую форму, что приводит к 403. Возможно, браузер Instagram иногда игнорирует этот токен, но как и почему, мне не известно.
Кто-нибудь еще испытывал что-нибудь подобное?
Спасибо
Комментарии:
1. Вы нашли решение этой проблемы?
2. @WayBehind, отрицательный. Все еще живу с этим. Вы видите что-то подобное?
3. Спасибо за ответ. Да, у нас возникли некоторые проблемы с формой приложения Django, отображаемой через IFRAME. Браузер Insta отправляет не все значения. Мы даже пытались отключить требования CSRF на целевой странице, но безуспешно. По-видимому, Insta использует UIWebView, который является устаревшей версией старого браузера Safari.
4. Очень неприятно, особенно потому, что большая часть трафика наших клиентов поступает через Insta. В качестве обходного пути мы добавили некоторый код, который уведомляет нас, когда это происходит. Затем мы отправляем конечному пользователю электронное письмо и советуем ему перейти через Safari или Chrome. Мы пытались уведомить Insta, но с таким же успехом мы могли разговаривать с полем чертополоха. Если мы наткнемся на решение (больше не будем активно пытаться исправить, поскольку потратили на это так много времени), я обязательно опубликую здесь. Кстати, я не думаю, что IFRAME является частью проблемы. По крайней мере, мы не используем IFRAME. Мы также попробовали некоторые трюки с CSRF, но это не помогло.
5. Спасибо за информацию. Дайте мне знать, если найдете решение!
Ответ №1:
У меня была эта проблема с одним из моих проектов Ruby on Rails, где люди переходили к форме непосредственно по ссылке профиля Instagram, и время от времени мы получали 422.
Журналы показали, что браузер приложения Instagram отправил файл cookie CSRF, который отличался от токена в соответствующем скрытом поле формы, чего не должно быть, если страница правильно загружена в браузере приложения. Мы смогли воспроизвести его в реальном времени на одном устройстве, и с точки зрения пользователя загрузка страницы и навигация выглядели совершенно нормально. Может ли это быть связано с кэшированием?
Ранее у нас уже были заголовки Rails по умолчанию max-age: 0
, но мы решили просто установить
Cache-Control: no-cache, no-store
для каждой критической страницы и посмотрите, не изменилось ли что-нибудь.
С тех пор проблема, похоже, исчезла.
Комментарии:
1. К сожалению, это не решило проблему для нас.