是",@&引用;URL中主机名后的有效字符?
在这种情况下,当然允许使用“@”:是",@&引用;URL中主机名后的有效字符?,url,uri,Url,Uri,在这种情况下,当然允许使用“@”: 然而,在这些情况下: 它们是“正常”还是“@”应该被编码? 类似地,如果它们“正常”,主机部分是否分别为“bar”和“b.com” 我查看了rfc(),第45页使用了以下示例: ftp://cnn.example.com&story=breaking_news@10.0.0.1/top_story.htm 指示“@”表示“10.0.0.1”是主机,但我不确定,因为查询部分没有正确启动(否“”)。(然后它又提到了“攻击”,我感到困惑。)
ftp://cnn.example.com&story=breaking_news@10.0.0.1/top_story.htm
指示“@”表示“10.0.0.1”是主机,但我不确定,因为查询部分没有正确启动(否“”)。(然后它又提到了“攻击”,我感到困惑。)
背景:我试图确定Steven Levithan的正则表达式在将“”解析为大量“bar”时是否正确:
RFC中使用了您提到的示例来说明这样的URI如何欺骗人类。在本例中,
cnn.example.com&story=breaking_news
将是URI的用户信息部分,与第一个示例中的user:pass
相同
至于URI本身是否允许@
,据我所知
如果你看第48页和第49页,你会发现(除其他外)以下规则:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty / *snip*
authority = [ userinfo "@" ] host [ ":" port ]
path-abempty = *( "/" segment )
segment = *pchar
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
将此应用于http://www.foo.com/@我们发现scheme
是http
<代码>权限
仅包含强制的主机
部分,即www.foo.com
(userinfo
和端口
都是可选的)。与此权限
组件一起更高的部分有一个路径空
组件,该组件由一个重复的/@条组成。段由4个重复的pchar
组成:@
、b
、a
和r
。因此,bar
不是主机名
另一方面,任何给定的浏览器和/或Web服务器在多大程度上遵循RFC是一个完全不同的问题
免责声明:我不是专家,我已经有一段时间没有做过一般性的研究了。为了安全起见,我会对它进行编码。可能的重复我认为你是对的,它是重复的。(这对谷歌来说太难了!)然而,答案相互矛盾,所以这可能有一些用处。