使用 JavaScript 发送电子邮件时的服务器端验证?

Server side validation when using JavaScript to send an email?

在我的网站上,我使用 Angular 和 $http 对象来发送电子邮件。这只是一个简单的联系表格。我验证电子邮件并确保必填字段已用简单的正则表达式填充。

据我所知,即使使用服务器端语言,验证电子邮件仍然遥遥无期。 (参见 this question。)我真正能做的最多就是应用相同的基本正则表达式。

因为我发送的电子邮件带有客户端脚本(我什至不再支持禁用 JS 的人。对此进行了很好的讨论 here。)并且电子邮件不会发送,除非用户启用了 JavaScript,是否真的需要在服务器端进行验证?

是否有关于何时需要使用服务器端验证的一般经验法则?

Since I'm sending the email with a client side script … is there really any need to validate on the server-side?

您无法控制人们向您的服务器发送 HTTP 请求的内容。

虽然他们不能简单地提交一个表单来获得预期的结果(即 a shame,因为 JS 失败的原因有很多,而不仅仅是在客户端被禁用),他们仍然可以阅读您的代码 and/or 使用他们的浏览器工具来确定您的网络服务的 API。鉴于这些信息,构建客户端以向其发送他们喜欢的任何数据(包括恶意数据)是微不足道的。

Is there a general rule of thumb for when you need to use server-side validation?

是的。您总是 需要服务器端验证。客户端验证只是为了方便访问者(更快/更好 UI)。