我仍然在争论是否要这样做,但我正在考虑阻止用户在我的应用中将超链接输入HTML表单。这是为了避免垃圾链接显示应用程序的其他用途,因为该应用程序基于用户生成的内容。
这是一个Rails应用程序,因此我可以在用户提交表单后对模型进行一些后端验证。
但我想知道在提交任何提交之前是否可能更喜欢在jQuery / JavaScript中执行检查。通过这种方式,可以立即通知用户,而无需任何后端处理。
这里哪个更好 - 客户端或服务器端验证?
答案 0 :(得分:6)
只有在数据到达您的服务器时才能控制数据。如果您使用JavaScript来尝试删除垃圾邮件,那么垃圾邮件发送者就会关闭JavaScript。
构建服务器端解决方案。
有了这些,请考虑重复工作客户端,以便为用户提供更好的服务。
答案 1 :(得分:2)
同时使用。
当客户端启用JavaScript时,客户端验证可以降低服务器上的压力。
服务器端是你用户关闭JavaScript的最后一道防线。
答案 2 :(得分:2)
你说:
不,不!您必须在后端进行验证!所以我可以做一些后端验证 在表格之后的模型上 由用户提交。
可以禁用Javascript,可以伪造表单发布;所以你总是需要在后端/服务器上开发验证/过滤/你想要的任何安全措施。
只有这样,你最终才能添加一些JS,所以你的应用程序更加用户友好。
答案 3 :(得分:1)
你应该同时使用两者,在客户端上使用jQuery validation plugin,以及在后端使用哪种方法(我不知道ROR)。
ajaxy验证解决方案可以在客户端输入信息时执行服务器端验证,并相应地提供反馈/阻止提交。
希望有所帮助。
答案 4 :(得分:1)
两个............
答案 5 :(得分:0)
垃圾邮件发送者经常使用某种类型的脚本来分析表单,并自己构建表单数据和帖子,因此客户端脚本对大多数垃圾邮件都是无用的。
答案 6 :(得分:0)
JavaScript验证非常适合握住非恶意用户。 “您输入的密码不匹配”,“看起来像无效的电子邮件地址,请仔细检查”等等。
JavaScript的缺点是无法验证它是否已运行,也无法按预期运行。恶意用户,或者带有故障浏览器插件的用户,或者带有过热的防火墙/内容拦截器的用户,没有使用JavaScript的spambot,启用NoScript的用户或任何其他情况都可能导致您的验证永远不会被触发。
因此,如果需要验证,您的服务器应始终验证数据。 JavaScript可以是第一道防线,但它永远不会是最后一道防线。