仅通过电子邮件发送的用户输入(无数据库查询)-安全问题是什么


User input that ONLY gets emailed (no db query) -- what are the security issues?

>我有一个表单,它接受用户输入的基础知识,如姓名、电子邮件、位置,然后发送一封将这些值格式化为表格的电子邮件,供内部使用。我想知道这里涉及的安全问题是什么,以及如何尽可能接近 100% 地解释它们?我正在使用PHP及其mail()函数。

到目前为止,我所拥有的一切都strip_tags应用于所有输入的数据。除此之外,除了字符长度计数之外,几乎没有验证,但即使是那些也相当大(例如,姓名为 80,电子邮件为 255;名称没有其他验证,以免对外国名称造成麻烦,电子邮件使用 FILTER_VALIDATE_EMAIL)。

注意 - 没有数据库查询(如果有,我会使用预准备语句作为查询的保护),但如果这影响任何事情,它将连接到一个。

非常感谢您的时间和帮助!

尝试使用验证码以避免人们使用它发送垃圾邮件。

看看

recaptcha。 这是一项免费的验证码服务,有助于将书籍、报纸和旧时广播节目数字化。他们的网页中有有用的信息。

我现在唯一能想到的就是添加验证码或要保护垃圾邮件发送者的东西。

我会确保您正在使用的PHP函数和SMTP服务器组合不容易受到SMTP注入的影响。

否则,可能会劫持您的邮件服务器以向任何地址发送电子邮件或垃圾邮件。 CAPTCHA 会在一定程度上缓解这种情况,但即便如此,即使 CAPTCHA 响应正确,您也不希望邮件服务器容易受到攻击。