例如,如果我想检查输入是否只有字母数字字符且长度超过10个字符。我应该检查服务器端吗?或服务器端和数据库(查询)本身?或者只是去寻找热情并检查客户端,服务器端和数据库端?
只是想找到合适的检查平衡。
答案 0 :(得分:1)
一个好主意无效,你在客户端和服务器上验证。在客户端上验证,但在后端处理数据时不要盲目信任结果。这可能使您的应用程序容易受到恶意攻击,尤其是在驱动关键业务流程的表单中。
首先通过验证数据客户端来增加用户体验,然后通过在后端验证客户端已被视为有效的内容来保护自己。
答案 1 :(得分:0)
始终验证服务器端。如果你想做动态jQuery-ish表单处理错误弹出窗口等,另外做客户端可能会有所帮助。不确定“在查询中”是什么意思 - 你的意思是在架构中吗?
答案 2 :(得分:0)
永远不需要在服务器端和数据库中都这样做。是否在客户端进行检查取决于您的环境以及应用程序的运行方式。在Web应用程序中,如果运行许多客户端脚本来执行各种其他操作,则客户端验证是理想的,如果不是必需的话。重要的是你需要在服务器端进行所有验证,即使你在客户端做了一些验证,因为如果你愿意的话,很容易绕过客户端验证。
即使你没有做很多客户端的狡猾,客户端验证也是非常有益的,因为它减少了对服务器的请求,这可以极大地帮助性能(感知和实际)。
在数据库中进行验证是错误的,因为验证通常由业务规则驱动,而您的数据层不应该是业务规则的所有者。
答案 3 :(得分:-2)
老实说,这是偏好,但有好处。如果您处于高流量环境中,您可能不希望执行所有验证服务器端,因为您可以更少地进入服务器的流量。
部分客户端和部分服务器端。
易于验证客户端的项目可能是:
取决于您的数据层是什么......如果您的使用程序,应该内置基本数据类型验证。