我到处都读到(并且在实践中看到)用户名不可更改。当我问为什么时,将“安全性”作为理由。
我一直在寻找关于为什么更改用户名不安全的明确答案,但是我似乎找不到答案。
这里的任何有安全经验的人都可以回答这个问题吗?
注意:如果您不知道答案,请不要猜测。我本人已经想到了多种原因,但是我不知道实际的答案,因此不知道这个问题。
更新:
1:用userId表示某种唯一标识符,无论是数据库记录ID还是其他一些唯一ID。我曾多次被告知,即使用户名不是系统本身的主要/唯一标识符,更改用户名也不利于安全。
2:我允许用户更改其“公用名”。这是用于将用户标识为其他(非特权)用户的名称。
例如:
3:如Jason和The Rook所指出,一致性似乎是唯一的好理由。我觉得这种“最佳实践”可能是过去在系统中实际使用用户名唯一标识用户时遗留下来的东西。
最佳答案
从安全方面考虑,出于多种原因,您可能不希望允许用户更改其名称。但是,作为全力以赴的“永不做”-我不一定同意。但是,允许更改名称会产生很多额外的工作。如果要允许用户更改其身份,则由于以下原因,您必须非常小心。
无论如何,正如我所说的-我认为允许用户更改其名称不一定是一件坏事。但是,它确实为您(开发人员)创造了更多的工作。用户名现在不能是数据库中的唯一ID,并且用户名现在不必与某人相关(因为以后可以更改),因此您必须具有一个用于表达“唯一性”的系统。