使用 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)。
在我的网站上,我使用 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)。