使用HTTP状态308永久重定向安全吗?


11

在服务器响应中使用HTTP状态代码308永久重定向建议)是否安全?301永久移动的问题在于,它仅适用于GET请求(公平地说:POST将转换为GET,这不是一个选择)。

状态代码在“ RFC时间”中非常新颖,那么您会提出什么建议?

如果浏览器不知道308,该怎么办?它会找到位置并执行302吗?


甚至比您似乎意识到的还要新;现在是RFC
迈克尔·汉普顿

1
您是否阅读了“ 部署注意事项”部分?
哈坎·林奎斯特

308 不是标准-只是提议,仍处于实验阶段。浏览器应该退回300解释他们不明确理解的任何301-399错误。
克里斯S

1
在哪种情况下,您希望收到直接发送到过时URL的POST请求?
天鹰

1
@Skyhawk:我使用html5的离线功能。对于评论或创建新帖子,由于对帖子本身进行了修改,因此目标网址可能已更改。
Burnersk

Answers:


4

尽管308现在是标准(https://tools.ietf.org/html/rfc7538),但它目前尚不安全 [编辑](截至2019年4月3日),尤其是对于桌面应用程序而言,但在某些情况下可能几乎是安全的特定区域(例如印度),或针对平板电脑和移动设备的应用。

缺乏安全性是因为Windows 7和8.1上的IE 11不支持它。在IE 11中,该站点似乎挂起。幸运的是,Windows 10附带的IE确实支持它,因此,这只是一种等待,直到Windows 7的大量普及(Win 7仅在全球使用情况中才被Win 10超越)。 [编辑]或您的公司决定不再支持它(从2020年1月14日开始,Windows 7甚至将失去长期支持,这是一个非常有力的理由)。

所有其他现代浏览器都支持它(Chrome,Firefox,Safari,Edge,Opera)。

[编辑]自2019年3月起的使用情况统计信息可帮助您做出决定:

  • 36.52%的桌面用户仍在使用Windows 7
  • 9.83%的桌面用户使用IE;由于Win10极大地推动了Edge的发展,我认为这些用户大多数都在Win 7上。参考netmarketshare

因此,截至本次编辑(3/4/2019),决定使用308可能会影响5%至9%的桌面用户(基于上述统计数据我的猜测)。如果您的应用程序更适合平板电脑/移动设备,则该值将大大降低。同样,如果您的应用程序专门针对印度市场。

您可以在此处测试浏览器是否支持308重定向:https : //webdbg.com/test/308/


请注意,这与307不同。Windows7上的IE 11支持HTTP 307,没有问题。(为什么?)
富兰克林·于

7

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/308

RFC 7538提案今天得到了广泛的支持。它是安全的。

308代替301。307代替302。

移动!=重定向

移动提醒特定的地址和/或文件移动。重定向是一个新的位置或地址。


1
截至目前(2018年2月20日),由于Windows 7上使用IE 11的人数仍然不支持,因此尚不安全。
monty

@monty那是什么号码?现在是什么
罗宾·温斯洛

截至2019年3月,仍然有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中使用。但是,如果您需要旧版浏览器的支持,则可能仍然是一个问题!
Yahya Uddin'3

3
它在Win8.1及更低版本的IE11中不起作用(在Win10上有效)。
Bart Verkoeijen

tools.ietf.org/html/rfc7538 “超文本传输​​协议状态代码308(永久重定向)”发布于2015
。– Patrick Mevzek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.