Javascript 防止将超链接输入html表单:客户端验证还是服务器端验证?

Javascript 防止将超链接输入html表单:客户端验证还是服务器端验证?,javascript,jquery,ruby-on-rails,client-side,server-side,Javascript,Jquery,Ruby On Rails,Client Side,Server Side,我仍在争论是否要这样做,但我考虑的是阻止用户在我的应用程序中将超链接输入HTML表单。这是为了避免垃圾邮件链接出现在应用程序的其他用途上,因为应用程序基于用户生成的内容 这是一个Rails应用程序,因此我可以在用户提交表单后对模型进行一些后端验证 但我想知道是否最好在提交之前在jQuery/JavaScript中执行检查。这样,无需任何后端处理即可立即通知用户 客户端验证还是服务器端验证更可取?您应该同时使用这两种方法,在客户端上使用,在后端使用任何合适的方法(我不知道ROR) ajaxy验证解

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

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

但我想知道是否最好在提交之前在jQuery/JavaScript中执行检查。这样,无需任何后端处理即可立即通知用户

客户端验证还是服务器端验证更可取?

您应该同时使用这两种方法,在客户端上使用,在后端使用任何合适的方法(我不知道ROR)

ajaxy验证解决方案可以在客户端输入信息时执行服务器端验证,并相应地提供反馈/防止提交


希望这能有所帮助。

两者………

只有当数据到达服务器时,您才能控制数据。如果您使用JavaScript试图去除垃圾邮件,那么垃圾邮件发送者只会关闭JavaScript

构建服务器端解决方案

一旦你做到了这一点,可以考虑复制工作客户端,让用户感觉更好。

两者都使用

当客户端打开JavaScript时,客户端验证降低了服务器上的压力

服务器端是您的最后一道防线,在用户关闭JavaScript的情况下,它应该存在。

您说:

所以我可以做一些后端验证 在表单创建后的模型上 由用户提交

不!您必须在后端执行验证

Javascript可以被禁用,表单发布可以被伪造;因此,您始终需要在后端/服务器上开发验证/过滤/任何您想要的安全措施


只有这样,你才能最终添加一些JS内容,这样你的应用程序才更加人性化。

垃圾邮件发送者通常使用某种脚本来分析表单并自行构建表单数据和帖子,因此,客户端脚本对于大多数垃圾邮件来说是完全无用的。

JavaScript验证是抓住非恶意用户的好方法。“您输入的密码不匹配”、“看起来像是无效的电子邮件地址,请仔细检查”等

JavaScript的缺点是无法验证它是否运行,也无法验证它是否按预期运行。一个恶意用户,或者一个有故障浏览器插件的用户,或者一个有过度热心的防火墙/内容拦截器的用户,一个没有JavaScript的spambot用户,一个启用了NoScript的用户,或者任何其他情况都可能导致您的验证从未被触发


因此,如果需要验证,服务器应该始终验证数据。JavaScript可以是第一道防线,但它永远不会是最后一道防线。

事实上,垃圾邮件发送者甚至不会看到JavaScript,因为他们可能会自动提交帖子