在哪里执行与移动应用程序的长度,格式相关的验证:在服务器端还是应用程序端?

时间:2014-03-01 14:22:47

标签: javascript android validation mobile client-server

我们正在开发Android移动应用,它将拥有大约8-10个屏幕,每个屏幕上有大约10个字段。在每个屏幕上,我们需要“提交”数据到服务器。我们应该在哪里执行与服务器端或应用程序端的长度,格式相关的验证?如果我们在应用程序方面这样做,我们有限制使用JavaScript。我们希望考虑性能影响和调试的简便性。

3 个答案:

答案 0 :(得分:0)

您应该在客户端和服务器端验证这两者。

客户端: 在客户端进行验证会使应用程序更加快捷,因为在向用户显示有关格式,长度或必填字段的任何信息之前,您不必等待服务器的响应。它还使您能够实时处理验证,这将导致更多的用户体验。我不明白你为什么要用javascript编写Android应用程序。 This文章提供了一些相关信息。

服务器端: 这是您防范错误数据的地方。几乎从不需要服务器端的检查,因为它们已经由客户端制作。这些检查只是为了防止任何人绕过客户端检查和传递虚假数据。

如果您只想或可以实现其中一个,那么应该是服务器端检查。

答案 1 :(得分:0)

UI逻辑的复杂性是常见问题。但很明显,您应该在添加任何检查时按照方式组织代码。要调试应用程序(在手机上运行),您可以尝试使用Android 4.4和remote debugging of WebView

另外我猜你应该在服务器端执行验证。逻辑必须接受或拒绝传入处理链的数据。也有可能有人会调用你的逻辑,而不仅仅是你自己的应用程序。

答案 2 :(得分:0)

最佳解决方案是在客户端和服务器端执行双重验证。

假设数据验证是一个简单的CPU绑定操作,并且可以在合理的时间内由任何移动设备快速完成(即不影响性能),第一个客户端验证会阻止您的应用执行潜在无用的网络请求,这意味着网络无用的流量生成,并且取决于用户与其Telco运营商的合同可能意味着成本。此外,这是后端系统处理无效数据的额外工作,即使单个验证是一个简单的操作,因为您可能(希望)在多个设备上安装了许多应用程序实例,这种努力将成倍增加并导致大的加载服务器。

尽管如此,你无法避免最终的服务器端验证,因为我们生活在现实世界而不是理想的生活世界,任何客户端操作都不能被认为是安全的!

您正在使用的技术(在您的情况下为javascript)不会影响或影响上述注意事项!所有技术都提供了足够的即用型验证和调试工具!