Чи безпечно використовувати HTTP-статус 308 Постійна перенаправлення?


11

Чи безпечно використовувати код статусу HTTP 308 Постійна перенаправлення ( пропозиція ) у відповідях сервера? Проблема з 301 переміщеними постійно полягає в тому, що вона працює лише з GET-запитами (якщо справедливо: POST перетвориться на GET, що НЕ є варіантом).

Код статусу дуже новизний у "час RFC", так що б ви запропонували?

Що б зробив браузер, якщо його не знають 308? Чи знайде це місце та зробить 302?


Новіше, ніж ви, здається, усвідомлюєте; це RFC зараз .
Майкл Хемптон

1
Чи читали ви розділи " Розгляд розгортання "?
Håkan Lindqvist

308 - це не стандарт - це пропозиція, що знаходиться ще на стадії експерименту. Браузери повинні повернутися до 300 інтерпретації будь-якої помилки 301-399, яку вони конкретно не розуміють.
Chris S

1
За яким сценарієм ви очікуєте отримання запиту POST, надісланого безпосередньо на застарілу URL-адресу?
Skyhawk

1
@Skyhawk: Я працюю з офлайн-функціями "html5". Для коментарів або створення нових публікацій цільова URL-адреса може бути змінена через зміну самої публікації з її категорій.
burnersk

Відповіді:


4

Хоча 308 зараз є стандартом ( https://tools.ietf.org/html/rfc7538 ), він наразі не є безпечним [Редагувати] (станом на 3 квітня 2019 року), особливо для настільних програм, але в деяких може бути майже безпечним. конкретні регіони (наприклад, Індія) або для додатків, орієнтованих на планшети та мобільні пристрої.

Відсутність безпеки пояснюється тим, що IE 11 в Windows 7 і 8.1 не підтримує його. У IE 11 сайт просто зависає. На щастя, IE, що постачається з Windows 10, підтримує його, тож це буде лише випадком очікування, поки загальна кількість людей перейде з Windows 7 (Win 7 тільки що перевершив Win 10 у глобальній статистиці використання, Win 8 значно менш популярні, ніж обидві) [Редагувати] або ваша компанія приймає рішення більше не підтримувати її (що можна зробити дуже важким випадком з 14 січня 2020 року, коли Windows 7 втрачає навіть довгострокову підтримку ).

Усі інші сучасні браузери підтримують його (Chrome, Firefox, Safari, Edge, Opera).

[Редагувати] Статистика використання з березня 2019 року, щоб допомогти прийняти рішення:

  • 36,52% користувачів настільних комп’ютерів все ще в ОС Windows 7
  • 9,83% користувачів настільних ПК були на IE; оскільки Win10 так сильно підштовхнув Edge, я вважаю, що більшість цих користувачів перебувають на Win 7. Ref netmarketshare

Отже, рішення про використання 308 вплине напевно (на мою думку, на підставі вищезгаданих статистичних даних) від 5 до 9% користувачів настільних комп’ютерів станом на цю редакцію (3/4/2019). Якщо ваша програма орієнтована більше на планшети / мобільні пристрої, це значення буде значно нижчим. Аналогічно, якщо ваш додаток спеціально для індійського ринку.

Ви можете перевірити, чи підтримує ваш браузер 308 переадресацій тут: https://webdbg.com/test/308/


Зауважте, що це відрізняється від 307. IE 11 в Windows 7 підтримує HTTP 307 без проблем. (Чому?)
Франклін Юй

7

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308

Пропозиція RFC 7538 сьогодні має широку підтримку. Це безпечно.

308 замість 301. 307 замість 302.

рухатися! = перенаправляти

Переміщення нагадує конкретну адресу та / або файл, переміщений. Перенаправлення - це нове місце чи адреса.


1
На сьогодні (20 лютого 2018 року) він ще не є безпечним через кількість людей у ​​Windows 7, які використовують IE 11, які досі не підтримують це.
монто

@monty, яке це було? що це зараз?
Робін Уінслоу

Станом на березень 2019 року 36,52% користувачів настільних ПК все ще перебувають у Windows 7, а 9,83% користувачів настільних ПК були на IE.
Monty

2

Для закінчення: Ні, цей код статусу не є безпечним. Деталі див. У коментарях.

308 - це не стандарт - це пропозиція, що знаходиться ще на стадії експерименту. Браузери повинні повернутися до 300 інтерпретації будь-якої помилки 301-399, яку вони конкретно не розуміють.

Деякі браузери просто не спрацьовують із цим кодом статусу.


1
Ця відповідь застаріла. Я вважаю, що RFC був доступним для використання у сучасних браузерах developer.mozilla.org/en-US/docs/Web/HTTP/Status/308 . Однак якщо вам потрібна підтримка старих браузерів, це все ще може бути проблемою!
Яхья Уддін

3
Він не працює в IE11 на Win8.1 і нижче (працює на Win10).
Барт Веркойєн

tools.ietf.org/html/rfc7538 "Код статусу 308 протоколу передачі гіпертексту (постійне перенаправлення)", опублікований у квітні 2015 р.
Патрік Мевзек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.