是否可以创建包含特殊字符的DNS子域?

时间:2016-12-16 19:19:13

标签: http dns subdomain

是否可以创建包含特殊字符的DNS子域?

例如,根据针对DNS的RFC,* .example.com或$ .example.com是否有效?

2 个答案:

答案 0 :(得分:1)

对你的问题的简短回答可归结为"是的,但不是,但有时是的"。

在协议级别,DNS字符串(包括名称)被编码为长度+数据,因此数据可以是任何数据。因此,*$完全正常。

协议之上的级别是人名级别。在那个级别上,您可以使用哪些名称进行限制。从80年代开始,主要限制归结为字母,数字和-(只要它不在标签的开头或结尾)。因此,禁止*$*除外,因为标签的整个内容具有特殊含义)。

最重要的是,这些天我们有国际化的名字。这是一种将任何Unicode字符串编码为符合上述规则的形式的方法。这样,我们可以在内部看起来像räksmörgås.se的名称看起来像xn--rksmrgs-5wao1o.se。开头的xn--是一个前缀,表示这是一个编码名称。您仍然无法在名称中使用*$,但您可能会在Unicode中找到其他类似的内容,并且可以使用..这是一个安全问题。

所有这些的规范分布在太多的RFC上。如果您有点好奇,请从here开始,然后点击许多链接。

答案 1 :(得分:0)

根据RFC 1034,域名标签可以包含字母,数字或连字符(并且必须以字母开头,以字母或数字结尾),因此不允许$。具有特殊处理的例外是*,用于通配符,并更详细地解释in RFC 4592