为什么在WordPress多站点网络中创建新站点时,不允许使用“纯数字”名称?

时间:2018-08-11 作者:user658182

我有一个越来越受欢迎的多站点网络,但对于新客户来说,最令人困惑的用户体验之一是填写“你希望你的站点名称是什么?”我什么都有but 根据WPMU站点名称验证规则,正确格式化的站点名称。

为了简化操作,我正在重写插件代码,这样用户就不会输入自己的站点名称。相反,它是在幕后自动为他们生成的。

我认为使用这个新网站的博客ID是很简单的,因为它是独一无二的。

但是on line 623 of ms-function.php 是以下代码,用于防止站点名称仅为数字。

// all numeric?
if ( preg_match( \'/^[0-9]*$/\', $blogname ) )
$errors->add(\'blogname\', __(\'Sorry, site names must have letters too!\'));
为什么会这样?这是安全问题还是什么?我计划创建一个独特的、易于记忆的名称,该名称将由一个随机单词加上博客id组成(例如pinecone55,其中55是博客id)。

但是,如果以任何方式公开博客id都有安全隐患,我不想这样做。

对于纯数字名称或包含博客ID的名称,有哪些注意事项?

1 个回复
SO网友:Mark Kaplun

为了简化操作,我正在重写插件代码,这样用户就不会输入自己的站点名称。相反,它是在幕后自动为他们生成的。

+1000个

与大多数“为什么核心代码是这样的”一样,最好看看GIT/SVN的“责怪”,并希望您能在代码或提交中找到有用的注释,但从MS是一个独立产品的时候起,这段代码就已经过时了,这将使挖掘原因变得更加困难。

假设代码中没有有用的解释,我会假设原因是在子域配置的上下文中,一些DNS主机/软件不兼容,或者web服务器很难对其进行解析,这在今天可能不是真的。有关更多上下文,请阅读https://serverfault.com/questions/172041/numeric-subdomain

结束