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

Pro*_*ing 34 url uri http

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

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

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

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

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

我在下面的页面上看到,超过260个字符的URL路径段可能会导致自定义ASP.NET模块出现问题:

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

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

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

我也知道在重写路径时,底层文件系统路径长度发挥作用,我可以看到支持的球场图在*nix OS中大约255个字符.

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

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

我确实读过关于URI的W3C规范但是我没有发现任何有用的东西:

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

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

Ger*_*ier 57

可能与不同浏览器中URL的最大长度有关?

简而言之

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

Chrome对网址的限制为2MB,IE8和9限制为2084.所以一切都指向保持您的网址限制在约.2000个字符.

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

但是,域名有一个最大值.长度为255个字符. 所以为了安全起见,最大限度地 如果您的网址不在1段中,则网址段的长度大约为1745个字符.


Jul*_*hke 5

没有这样的规格限制.可能存在实施限制,但您不会在规范中找到这些限制.

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

  • 这就是我所追求的,一份实施限制清单。 (2认同)

vit*_*lii 5

URL的长度不得超过2K(只是常见的做法)。该段路径可以是任何大小

长度不应超过255个字符(参见RFC3986)。限制只存在于实施中。附加到 URL 的仅在特定情况下(旧的常用用法)受到限制。

现在几乎所有的请求都通过一个文件来进行重写规则,所以段长度无关紧要。之后,段被保存在一个可以非常大的变量中,所以基本上没有限制。