Jos*_*eph 0 javascript php security validation user-experience
一个人可以来创建一个帐户.我在客户端实现了很好的验证,例如,如果他没有提供有效的电子邮件地址,我会立即通知他,这是无效的电子邮件(使用客户端JavaScript).
但攻击者很容易绕过客户端验证.所以我也在服务器端使用了相同的验证.但不同的是用户体验.例如,如果客户端上的JavaScript被禁用并且用户提供了无效的电子邮件,则应用程序将告诉他错误(在提交表单和刷新页面之后).没有更多信息.(因为我认为他是攻击者所以我的网站应该为攻击者提供糟糕的用户体验).
现在我的问题是:如果我这样做,我的网站的用户体验会好吗?(在客户端向用户报告错误,但在服务器端报告错误,服务器端将在整个表单提交任何失败的验证后返回'错误').
更多说明:
每当用户在输入中键入无效文本时,应用程序将在输入底部告诉他红色文本,他没有输入有效文本.(这将由于客户端JavaScript而发生).
但是,如果以某种方式禁用了客户端JavaScript并且用户在输入中键入了无效文本,则服务器端将在页面提交后向用户返回"错误".
永远不要依赖客户端验证.它可以很容易地绕过.始终在服务器端验证.客户端验证是一件好事,因为它可以提供即时反馈,从而提供更好的用户体验.但是,您可以依赖的唯一验证是用户不能破坏的验证,这意味着它必须驻留在服务器上(或者不在客户端浏览器/设备中的任何位置).