在我的网站上,我使用Angular和$http
对象发送电子邮件。这只是一个简单的联系表格。我验证了电子邮件,并确保必填字段已填充简单的正则表达式。
即使使用服务器端语言,据我所知,仍然无法真正验证电子邮件。 (参见this question。)我真正做的最多就是使用相同的基本正则表达式。
因为我发送的电子邮件带有客户端脚本(我甚至不支持那些已经禁用JS的人。对此进行了很好的讨论here。)除非用户,否则电子邮件将不会发送已启用JavaScript,是否真的需要在服务器端验证?
当您需要使用服务器端验证时,是否有一般的经验法则?
答案 0 :(得分:2)
由于我发送的是带有客户端脚本的电子邮件...是否真的需要在服务器端进行验证?
您无法控制人们向您的服务器发送HTTP请求的内容。
虽然他们不能简单地提交一个表单来获得预期的结果(a shame,因为JS可能由于许多原因而失败,而不仅仅是在客户端上被禁用),他们仍然可以读取你的代码和/或使用他们的浏览器工具来确定您的Web服务的API。鉴于这些信息,建立一个客户端可以发送他们喜欢的任何数据(包括恶意数据)是微不足道的。
当您需要使用服务器端验证时,是否有一般的经验法则?
是。您始终需要服务器端验证。客户端验证仅为访问者提供便利(更快/更好的UI)。