防止超链接输入到html表单:客户端或服务器端验证?

时间:2009-08-14 18:30:32

标签: javascript jquery ruby-on-rails client-side server-side

我仍然在争论是否要这样做,但我正在考虑阻止用户在我的应用中将超链接输入HTML表单。这是为了避免垃圾链接显示应用程序的其他用途,因为该应用程序基于用户生成的内容。

这是一个Rails应用程序,因此我可以在用户提交表单后对模型进行一些后端验证。

但我想知道在提交任何提交之前是否可能更喜欢在jQuery / JavaScript中执行检查。通过这种方式,可以立即通知用户,而无需任何后端处理。

这里哪个更好 - 客户端或服务器端验证?

7 个答案:

答案 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可以是第一道防线,但它永远不会是最后一道防线。