为什么要进行用户注册必须是正常的?

问题描述:

我在编写用户注册。但是,我发现从样本代码限制为'用户名'的字符,例如'。',''',' - '被接受,没有空格或其他空白等。为什么要进行用户注册必须是正常的?

这些限制是否必需?

我正在使用MySQL + PHP。如果我采取以下几种方法:

  1. 变化列“utf8_general_ci”的整理;
  2. 将函数'mysql_escape_string'或'mysql_real_escape_string'拉入到PHP中;
  3. 创建一个关于用户名< - > userID的关系表(“用户名”是客户端输入的内容,userID是一个INT号。)。以及只在数据库中使用'userID',但'用户名'只能以HTML格式显示。

我真的需要正则表达式吗?

谢谢你的帮助。 PS:我是中国人,所以需要中文字符。

由于这是一个网络应用,除了使用mysql_real_escape_string之外,我还建议剥离或禁止任何可以构建HTML的内容。一般禁止“<”和“>”就足够了。

你真的不希望一些用户输入他们的名字是:

<script src=http://malicious/script.js></script>

的替代解决方案是将数据输出时,你的页面中使用htmlspecialchars

这是你的,但使用mysql_real_escape_string应该是在我看来罚款(和我很偏执)

这些限制都没有neccessary,但是你必须保证,该用户名是有效且唯一字符串(带或不带正则表达式)的字符串和MySQL注入

当谈到剥离弱势字符我会建议使用Mysqli扩展准备的语句,这需要逃避的照顾和你没有逃跑每字符串手动