URL路径中的段应该是安全的最大长度是多少?

时间:2015-04-05 14:41:14

标签: http url uri

很多人都在问" 网址的最大长度是多少?" 但据我所知,没有人是问这个问题:

  

网址路径中的细分受众群的安全最大长度是多少?

我认为这个问题同样重要。

这个问题是一个普遍的问题,旨在尽可能多地支持开箱即用的系统。

在C#中,您可以从传入请求中获取URL路径段列表,并安装了安全模块,该路径可以视为此路径中URL路径中的段的最大长度吗?

我已在下一页上读到超过260个字符的网址路径段可能会导致自定义ASP.NET模块出现问题:

在网络浏览器中,无论您访问的是哪个网站,都会输入网址段,/是一个通常映射到主页的网址路径段。使用Internet Explorer,Chrome和Firefox是流行的浏览器,它们支持的URL路径段长度的最大长度是多少?

我可以从以下资源中看到,不同浏览器的URL路径的最大长度不同,而且数字有时非常高:

但这是一条路径而不是路径段。

我也意识到在重写路径时,底层文件系统路径长度起作用,我可以看到支持的球场图在* nix OS中大约为255个字符。

其他注意事项包括数据库表中URL路径段的最大长度。例如,在MySQL中,varchar列最多可以包含255个字符,但是有这种情况,人们是在MySQL中的表中存储路径段还是在varchar列中存储完整URL的人?对于URL路径段,这可能意味着255个字符太长了吗?

是否有任何关于网址路径段的W3C规范,因为我无法发现任何内容?

我确实在URI上阅读了W3C规范,但我再也没有发现任何有用的内容:

我感到非常困惑的是,URL路径段的长度没有设定标准,所以也许我错过了什么?

我真的在寻找尽可能多的不同系统支持的信息,以及URL路径段的安全长度。

3 个答案:

答案 0 :(得分:40)

可能与What is the maximum length of a URL in different browsers?

有关

简而言之

根据HTTP规范,URL的长度没有限制。保持您的网址不超过2048个字符;这将确保URL适用于所有客户端和服务器配置。此外,像URL这样的搜索引擎仍然保持在大约2000个字符之下。

Chrome对网址的限制为2MB,IE8和9限制为2084。因此,所有内容都指向将您的网址限制为约。 2000个字符。

此外,从可用性的角度来看,用户不能使用/读取的URL很长。

但是,域名有最大值。长度为255个字符。 所以为了安全起见,最多鉴于您的网址不属于1段,网址段的长度约为1745个字符。

答案 1 :(得分:5)

没有这样的规格限制。可能存在实施限制,但您无法在规范中找到这些限制。

Nit:URI由IETF定义,而不是W3C,当前规范是RFC 3986。

答案 2 :(得分:2)

URL length不应超过 2K (只是常见做法)。 segment path可以任意大小

长度不应超过255个字符(请参阅RFC3986)。限制仅存在于实施中。附加到网址的细分仅限于特定情况(旧的常用)。

现在几乎所有请求都通过rewrite rule的一个文件,因此段长度无关紧要。 之后,该段保存在一个非常大的变量中,因此基本上没有限制。