首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么用户注册必须是正常的?

为什么用户注册必须是正常的?
EN

Stack Overflow用户
提问于 2010-01-27 09:43:20
回答 3查看 124关注 0票数 2

我正在编写一个用户注册程序。但是,我发现有一个字符限制在示例代码中的“username”,例如“.”、“”、“-”被接受,没有空格或其他空白等等。

这些限制是否必要?

我在用MySQL+PHP。如果我采用以下几种方式:

  1. 将列的排序规则更改为“utf8 8_general_ci”;
  2. 将函数'mysql_escape_string‘或'mysql_real_escape_string’拉到PHP中;
  3. 创建一个关于用户名<-> userID的关系表( ' username‘是客户机输入的内容,userID是一个INT号。)也只需在数据库中使用“userID”,而“用户名”仅显示在HTML中。

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

谢谢你的帮助。

PS:我是中国人,所以需要汉字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-27 10:10:59

由于这是一个web应用程序,除了使用mysql_real_escape_string之外,我还建议取消或禁止任何可以构造HTML的内容。一般来说,禁止"<“和">”就足够了。

您确实不希望某些用户将其名称输入为:

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

另一种解决方案是在将数据输出到页面时使用htmlspecialchars

票数 1
EN

Stack Overflow用户

发布于 2010-01-27 09:49:14

这些限制并不是必要的,但是您必须确保用户名是一个有效和唯一的字符串(有或没有regex)。

当涉及到从字符串和mysql注入中剥离易受攻击字符时,我建议对准备好的语句使用Mysqli扩展,它负责转义,您不必手动转义每个字符串。

票数 1
EN

Stack Overflow用户

发布于 2010-01-27 09:46:07

这取决于你,但在我看来,使用mysql_real_escape_string应该没问题(而且我很偏执)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2145781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档