我完全理解JavaScript应该用来增强用户体验,但是我有时会使用它来验证输入,例如检查密码文本框是否超过5个字符或检查用户名文本框中输入的用户名是否已经存在存在。正如你所想象的,如果密码少于5个字符或用户名已经存在,注册按钮将被禁用。什么是验证用户输入的正确方法?
但是,这可以从用户浏览器改变,他们是否有更好的方式来验证用户的输入?
我知道我可以验证它全部通过服务器只是通过检查文本框时,单击注册按钮,但肯定它们必须是更好的方式,因此,用户不能改变?
BTW:我使用Visual Studio的C#ASP.NET
而且,我是正确的认为正则表达式也可以在客户端改变
假设客户端的所有内容都是不可信的,这是正确的。即使没有编辑dom也无法修改单选按钮组或复选框等内容。是的,正则表达式可以修改。您需要客户端(UX立场)和服务器端(实际安全)验证。 – jdphenix
基本规则是永不相信用户。任何你放置在浏览器中的东西都可以在任何人离开你的服务器后被任何人操纵。因此,接受的做法是仅作为用户体验机制进行客户端验证,并将服务器端验证作为实际验证。 –
无论你做什么或者你不做客户端,你都应该*也有*严格的服务器端输入检查。服务器是您防止非法输入的最后一道防线。是的,任何事情都可以在客户端进行修改。 URL和HTTP负载也差不多。这不会使Javascript正则表达式效率不高Trust Nothing;) – paulsm4