我是一名网络开发人员,在网络开发方面,我们教会客户端和服务器端验证。在Android编程中,我正在进行客户端验证并使用Toast显示消息。之后将数据发送到Web服务,
1)我是否仍应在网络服务中进行验证(如密码字段最少6个字符,字母数字等)。
Android开发验证的最佳做法是什么?
答案 0 :(得分:5)
是的,您应该从服务器端进行验证。然后问题为什么来
客户端验证总是提供更好的用户体验(UX),因此用户不必仅仅因为表单中的值不有效而提交和重新输入信息 - 它使事情变得更有活力。
如果您不进行服务器端验证,用户可以做些什么?任何东西,取决于你如何使用他们的数据。您可以允许用户删除整个数据库(或者更糟糕的是,泄露它们),修改他们喜欢的任何内容(或者更糟糕的是,阅读他们喜欢的任何内容。目录遍历缺陷是顽皮人员非常常见的入口点),并随意提升他们的权限。你想冒这个风险吗? 不验证用户输入就像信任人,而不是在家中安装锁。
答案 1 :(得分:0)
是的,你一定要!
想象一下,您添加除Android以外的其他客户端与您的应用程序进行通信。然后,通过服务器端检查,您可以获得检查一致的保险。否则,一致性就难以实现。
例如:您添加一个网站作为附加客户端(在您的应用旁边,就像一些消息人员那样),并通过JavaScript在客户端添加检查。用户禁用JavaScript并将垃圾放入您的数据库!
另一个例子:你添加一个iOS-Client。您的密码要求从6个字母变为8个字母。现在,您必须使用服务器端检查来修改和交付2个客户端。您只需更新您的网络服务。
因此,您可以获得更多客户的安全!