我正在为我的网站添加一项功能,以便人们邀请他们的朋友。我打算接受以通信分隔的列表并允许他们导入他们的Gmail联系人。
我的问题是,我如何阻止某人只是在我的脚本中发布一串电子邮件,实质上是A)压倒我的邮件服务器或B)向一群人发送垃圾邮件。显然,验证码会对此有所帮助,但只是好奇是否有其他方法来限制我们的风险...
由于联系人/等都在前端,因此无法使用我们的网站加密密钥对其进行哈希处理...所以我最初想到在将电子邮件发送到我们的“发件人”脚本之前对其进行哈希处理可能无法正常工作。 ..
非常感谢任何建议,帮助或指导!
答案 0 :(得分:3)
首先:不要使用通用发件人脚本!从外部请求获取收件人和邮件正文的任何脚本都是安全问题。安全性很难,你会犯错误,打开垃圾邮件发送者。更好地创建几个只能发送特定电子邮件的脚本。例如。一个联系我们脚本,硬编码或预先配置为仅向您发送电子邮件。一个告诉朋友的脚本,其中包含硬编码或预配置的消息模板。
接下来,您需要非常小心地将用户提供的任何内容放入电子邮件标题中(这包括邮件主题,来自/回复地址等)。当然,将回复自动设置为用户的电子邮件地址是很好的,但如果我将其键入我的电子邮件地址该怎么办:
me@example.org\nBCC:spam-target@example.org
现在我通过您的联系表单向其他人发送垃圾邮件,即使该表单只是向您发送邮件。
您应该将用户可以放入邮件标题(或邮件)中的任何内容视为可疑,因为您会对SQL查询中的任何内容进行处理。