您正在为受密码保护的网站编写登录例程。举例说明您可能想要捕获的特定用户输入错误,以及如何处理它们。
这是一个面试问题
我的回答如下
我们应该添加客户端错误和服务器端错误。
客户端错误: 检查用户是否在用户名字段中没有输入任我们可以使用“用户名未输入”的javascript显示消息 服务器端错误: 我们可以检查数据库中是否存在用户名,并且可以抛出错误消息。 我们可以检查密码在数据库中是否与输入的用户名不匹配。
任何人都可以建议。这些是我们唯一可以捕获的错误吗?
答案 0 :(得分:4)
我会考虑语法上无效的用户名(空;太短或太长;包含无效字符,如可能的空格,引号或shell / SQL元字符;结构无效,即以点或数字开头),以及语法上无效的密码(太短或甚至空,太“简单”,或等于用户名)。在所有这些情况下,您可以使用JS验证客户端,为“创建新用户,选择用户和密码”视图回收相同的代码。
服务器端,您可能有后端连接错误(即无法判断用户是否存在 - 不完全是用户错误,但我们可能仍希望在此管理它),找不到用户,密码不匹配,并且可能“登录已禁用”(这在auto-create-user网站上很常见:登录存在但必须通过点击通过电子邮件发送的链接进行验证。然后,人们可能想要放置这些“尚未用户” “在存储器中分开以避免在真实用户数据库上发生堵塞/搅动)。当然,您可能还想添加一个特殊的禁用状态和消息(“您的会员费已逾期”)。这里可以添加其他附加的“错误”和“警告”,例如“你没有从通常的IP块登录[,你介意回答这个安全问题吗?]”或“密码已过期,请选择另一个密码”。
答案 1 :(得分:2)