【问题标题】:Security in simple php mailer [closed]简单 php 邮件程序中的安全性 [关闭]
【发布时间】:2013-08-21 11:21:57
【问题描述】:

我正在尝试向我的超简单网站添加一个 php 邮件程序。我什至没有任何数据库。我想添加简单的垃圾邮件过滤器,例如。 “它是垃圾邮件吗?回答 NO:[ ]”。安全级别足够吗?还是我应该添加更多内容?正如我所说 - 非常非常简单的页面,访问者数量很少。

【问题讨论】:

  • <?php if(isset($_POST['submit'])) { do mailer} else {die('direct access not allowed');} ?> 还有一个用户应该回答的数学方程式和一些用于生成随机方程式和答案组合的 JavaScript。另外,如果需要验证,请检查每个字段是否已设置。

标签: php forms security email spam


【解决方案1】:

为了简单起见,您可以使用隐藏的垃圾邮件过滤器技术,这样做的好处是不会在您的表单中添加大的突兀的过滤器问题。

基本上,在网站上的 div 中添加文本类型的表单字段,并将其放置在使用 css 隐藏的 div 中。

确保将字段命名为“垃圾邮件过滤器”或“反垃圾邮件”。

然后,在处理表单时检查该字段是否已填写,如果有可能它是某种机器人,因为它们会自动填写字段,而更好的会检查诸如此类的字段.... . 无论哪种方式,由于用户看不到该字段,因此填写该字段的任何内容都将自动进行。

我使用了这种技术,它的性能完全符合您的预期。

示例....

<style>
#hide-me {
display: none;
}
</style>
<span id="hide-me"><input type="text" value="" name="anti-spam"></span>

显然有一些非常好的实际反垃圾邮件脚本,但是当您需要一些简单或不引人注目的东西时,您不会出错。

【讨论】:

  • 一点也不差。不过我想知道,如果使用隐藏字段也会产生相同的结果?
  • 许多机器人会忽略隐藏字段,因为他们认为它们是“对用户隐藏,对用户隐藏”。然而,用 css 隐藏似乎阻碍了他们。另一个增强是使用 js/jquery 隐藏跨度,这样隐藏的 css 状态更难检测到更好的机器人脚本;)
  • 你说得有道理。总有办法“战胜”狐狸就这样,干杯 ;-)
【解决方案2】:

要增加简单的安全性,请考虑查看catcha library

【讨论】:

    【解决方案3】:

    虽然一个简单的“它是垃圾邮件”问题会阻止通用机器人使用表单,但创建脚本来滥用表单将非常容易。快速浏览表单的源代码就会发现,潜在的滥用者只需在他们的代码中添加一个新字段“is-it-spam=no”。

    如果您正在寻找最简单的实现,我建议您使用 ReCaptcha 或托管表单服务

    对于 ReCaptcha,有适用于大多数流行编程语言的类,并且它的使用非常广泛。 ReCaptcha 将为您提供一个您在代码中保持安全的私钥,以及一个将显示在网站源代码中的公钥。然后,ReCaptcha 使用您使用您的私钥提交的信息来确保提交表单的任何人都是基于您网站上的图像提交的,而无需编写超级简单的脚本来滥用表单。

    如果您愿意使用托管服务,请查看WuFoo 之类的解决方案(或查看this blog post 了解更多想法)。托管服务将为您处理所有安全和过滤,您只需在您的站点中插入一小段代码即可嵌入他们的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      相关资源
      最近更新 更多