Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅通过电子邮件发送的用户输入(无db查询)——安全问题是什么?_Php_Security_Email_User Input - Fatal编程技术网

Php 仅通过电子邮件发送的用户输入(无db查询)——安全问题是什么?

Php 仅通过电子邮件发送的用户输入(无db查询)——安全问题是什么?,php,security,email,user-input,Php,Security,Email,User Input,我有一个表单,它接受用户输入的基本信息,如姓名、电子邮件、位置,然后发送一封电子邮件,将这些值格式化成表格,供内部使用。我想知道这里涉及的安全问题是什么,以及如何尽可能接近100%地解释这些问题?我正在使用PHP及其mail()函数 到目前为止,我所拥有的只是应用于所有输入数据的strip_标签。除此之外,除了字符长度计数之外,几乎没有任何验证,但即使是这些验证也相当大(例如,名称为80,电子邮件为255;名称没有其他验证,以免给外来名称带来麻烦,电子邮件使用过滤器验证电子邮件) 注意——这里没

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

到目前为止,我所拥有的只是应用于所有输入数据的strip_标签。除此之外,除了字符长度计数之外,几乎没有任何验证,但即使是这些验证也相当大(例如,名称为80,电子邮件为255;名称没有其他验证,以免给外来名称带来麻烦,电子邮件使用过滤器验证电子邮件)

注意——这里没有db查询(如果有,我会使用一个准备好的语句作为查询的保护),但是如果这影响到任何事情,它将连接到一个db查询


非常感谢您的时间和帮助

我现在唯一能想到的就是添加captcha或防止垃圾邮件发送者使用的东西。

尝试使用captcha以避免人们使用它来发送垃圾邮件


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

我会确保您使用的PHP函数组合和SMTP服务器组合不会受到攻击


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

使用验证码避免垃圾邮件。除此之外,你应该没问题。我建议使用PHPMailer或SwiftMailer从PHP脚本中发送电子邮件——这是
mail()
函数的两个很好的替代方法。@AmalMurali我开始怀疑PHP.net是否会在下一个版本中包含
mail()
函数,人们不断告诉其他人停止使用它的方式。这里的关键词应该是“开始正确使用它”;-)@阿马尔穆拉里哈哈!现在绝对是开始的好时机!;-)非常感谢大家。我将研究PHPMailer,尽管我很好奇为什么mail()如此低劣:)因为你的代表分数还没有到50分,值得一提的是,应该包括一些文档/示例来支持它。