Czy bezpiecznie jest używać stałego przekierowania o statusie HTTP 308?


11

Czy bezpiecznie jest używać kodu stanu HTTP 308 Trwałe przekierowanie ( sugestia ) w odpowiedziach serwera? Problem z 301 Moved Permanently polega na tym, że działa tylko z żądaniami GET (szczerze mówiąc: POST przekształci się w GET, co NIE jest opcją).

Kod statusu jest bardzo nowy w „czasie RFC”, więc co byś sugerował?

Co zrobiłaby przeglądarka, gdyby nie wiedziała o 308? Czy znalazłby lokalizację i zrobiłby 302?


Nowszy nawet niż się wydaje; teraz jest to RFC .
Michael Hampton

1
Czy przeczytałeś sekcję Uwagi dotyczące wdrażania ?
Håkan Lindqvist

308 nie jest standardem - to propozycja, wciąż w fazie eksperymentalnej. Przeglądający powinni powrócić do interpretacji 300 błędów 301–399, których nie rozumieją.
Chris S

1
W jakim scenariuszu oczekuje się otrzymania żądania POST wysłanego bezpośrednio na nieaktualny adres URL?
Skyhawk

1
@Skyhawk: Pracuję z funkcjami offline „html5. W przypadku komentarzy lub tworzenia nowych postów docelowy adres URL mógł ulec zmianie z powodu modyfikacji samego postu poza jego kategoriami.
burnersk

Odpowiedzi:


4

Chociaż 308 jest teraz standardem ( https://tools.ietf.org/html/rfc7538 ), obecnie nie jest bezpieczny [Edytuj] (od 3 kwietnia 2019 r.), Szczególnie w przypadku aplikacji komputerowych, ale może być prawie bezpieczny określone regiony (np. Indie) lub aplikacje skierowane na tablety i urządzenia mobilne.

Brak bezpieczeństwa wynika z tego, że IE 11 w systemie Windows 7 i 8.1 go nie obsługuje. W IE 11 strona wydaje się zawieszać. Na szczęście IE, który jest dostarczany z Windows 10, obsługuje go, więc będzie to tylko przypadek czekania, aż ogólna liczba ludności przejdzie z Windows 7 (Win 7 został tylko wyprzedzony przez Win 10 w globalnych statystykach użytkowania, Win 8 jest znacznie mniej popularne niż oba) [Edytuj] lub twoja firma podejmuje decyzję o jej nieobsługiwaniu (na co można wnieść mocny argument od 14 stycznia 2020 r., kiedy system Windows 7 traci nawet długoterminowe wsparcie ).

Obsługują go wszystkie inne nowoczesne przeglądarki (Chrome, Firefox, Safari, Edge, Opera).

[Edytuj] Statystyki użytkowania od marca 2019 r., Aby pomóc w podjęciu decyzji:

  • 36,52% użytkowników komputerów stacjonarnych nadal korzysta z systemu Windows 7
  • 9,83% użytkowników komputerów było w IE; ponieważ Win10 tak mocno naciskał na Edge, zakładam, że większość z tych użytkowników korzysta z Win 7. Ref netmarketshare

Tak więc decyzja o użyciu 308 wpłynie prawdopodobnie (według mojego szacunku na podstawie powyższych statystyk) od 5 do 9% użytkowników komputerów stacjonarnych od tej edycji (3/4/2019). Jeśli aplikacja jest bardziej ukierunkowana na tablety / urządzenia mobilne, wartość ta będzie znacznie niższa. Podobnie jeśli twoja aplikacja jest przeznaczona specjalnie na rynek indyjski.

Możesz sprawdzić, czy Twoja przeglądarka obsługuje przekierowania 308 tutaj: https://webdbg.com/test/308/


Zauważ, że różni się to od 307. IE 11 na Windows 7 obsługuje HTTP 307 bez problemu. (Dlaczego?)
Franklin Yu

7

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

Propozycja RFC 7538 ma dziś szerokie poparcie. To jest bezpieczne.

308 zamiast 301. 307 zamiast 302.

move! = przekierowanie

Przenieś przypomina określony adres i / lub plik został przeniesiony. Przekierowanie to nowa lokalizacja lub adres.


1
Na dzień dzisiejszy (20 lutego 2018 r.) Nie jest jeszcze bezpieczny ze względu na liczbę osób korzystających z systemu Windows 7 przy użyciu przeglądarki IE 11, która nadal tego nie obsługuje.
poniedziałek

@monty jaki był ten numer? co to teraz jest
Robin Winslow

Według stanu na marzec 2019 r. 36,52% użytkowników komputerów stacjonarnych nadal korzysta z systemu Windows 7, a 9,83% użytkowników komputerów stacjonarnych korzystało z IE.
poniedziałek,

2

Aby zakończyć: Nie, używanie tego kodu stanu nie jest bezpieczne. Zobacz komentarze, aby uzyskać szczegółowe informacje.

308 nie jest standardem - to propozycja, wciąż w fazie eksperymentalnej. Przeglądający powinni powrócić do interpretacji 300 błędów 301–399, których nie rozumieją.

Niektóre przeglądarki po prostu całkowicie zawodzą przy tym kodzie stanu.


1
Ta odpowiedź jest nieaktualna. Wierzę, że RFC został zaakceptowany i jest dostępny do użytku we współczesnych przeglądarkach developer.mozilla.org/en-US/docs/Web/HTTP/Status/308 . Jeśli jednak potrzebujesz pomocy ze starszych przeglądarek, może to nadal stanowić problem!
Yahya Uddin,

3
Nie działa w IE11 na Win8.1 i niższych (działa na Win10).
Bart Verkoeijen

tools.ietf.org/html/rfc7538 „Kod statusu protokołu transferu hipertekstu 308 (Permanent Redirect)” opublikowany w kwietniu 2015 r.
Patrick Mevzek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.