php 反垃圾评论,php-无需使用验证码即可阻止评论垃圾邮件

php-无需使用验证码即可阻止评论垃圾邮件

有哪些非验证码方法可以阻止我的评论中的垃圾邮件?

ian asked 2020-01-24T13:14:29Z

18个解决方案

61 votes

以我的经验,当前最有效的方法是通过CSS使用户看不见的蜜罐输入字段(最好使用几种不同的方法,例如可视性:隐藏,设置为0像素的大小以及绝对定位在浏览器窗口之外); 如果它们仍然被占用,您可以认为它是垃圾邮件机器人。

该博客描述了一种我自己尝试过的相当复杂的方法(到目前为止,成功率100%),但是我怀疑通过跳过带有哈希字段名称的所有内容并仅添加一些简单的蜜罐字段,您可以获得相同的结果。

Michael Borgwardt answered 2020-01-24T13:14:45Z

14 votes

1)在表单中添加与会话相关的信息示例:

然后在回发时,检查会话是否有效。

2)仅Javascript。 在提交时使用Javascript注入。 例:

3)每个IP,用户或会话的时间限制。 这很简单。

4)随机化字段名称:

$fieldkey = dechex(crc32(mt_rand().dechex(crc32(time()))));

$_SESSION['fieldkey'] = $fieldkey;

?>

然后,您可以在服务器端对其进行检查。

mauris answered 2020-01-24T13:15:27Z

9 votes

Akismet有一个API。 有人为此编写了一个包装器类(BSD许可证),网址为:[http://cesars.users.phpclasses.org/browse/package/4401.html]

还有一个贝叶斯过滤器类(还有BSD Liscense)[http://cesars.users.phpclasses.org/browse/package/4236.html]

easement answered 2020-01-24T13:15:52Z

6 votes

这是在不使用验证码的情况下阻止垃圾邮件机器人或蛮力攻击的简单技巧。

将其放在您的表单中:

把它放在你的PHP代码

$human_typing_time = 5;/** page load (1s) + submit (1s) + typing time (3s) */

$vars = explode(',', $_POST['hash']);

if(md5($secret_key.$vars[1]) != $vars[0] || time() < $var[1] + $human_typing_time){

//bot?

exit();

}

根据表格的重量,您可以增加或减少$ human_typing_time。

StoneHeart answered 2020-01-24T13:16:25Z

5 votes

也有蜜罐理论。 我喜欢将蜜罐与其他减少垃圾邮件的方式结合使用,以获得最佳效果。

[http://www.projecthoneypot.org/]

reactivePixel answered 2020-01-24T13:16:49Z

4 votes

朴素贝叶斯滤波器,当然:

[http://blog.liip.ch/archive/2005/03/30/php-naive-bayesian-filter.html]

ChickenMilkBomb answered 2020-01-24T13:17:13Z

3 votes

另一个常见的方法是给用户一个简单的问题(“火是冷还是热?”“ 2加7是什么?”等)。 它有点像验证码,但是视力障碍的用户可以使用屏幕阅读器来访问它。 我认为必须有一个执行此操作的WordPress插件,因为我在WordPress博客上经常看到它。

Kip answered 2020-01-24T13:17:34Z

2 votes

正如许多人已经提出的那样:使用一个蜜罐输入字段。 但是您还需要做另外两件事。首先,随机分配哪个输入字段是蜜罐的名称/ id。 存储会话中有用字段的状态(以及用于CSRF攻击的表单令牌)。 例如,您需要获取以下字段:名称,电子邮件,消息。 以您的形式,您将拥有“ token”是您的令牌,“ jzefkl46”是此表单的名称,“ ofdizhae”表示电子邮件,“ 45sd4s2”表示消息,“ fgdfg5qsd4”表示蜜罐。在用户会话中,您可以看到类似

array("forms" => array("your-token-value" => array("jzefkl46" => "name",

"ofdizhae" => "email",

"45sd4s2" => "message",

"fgdfg5qsd4" => honey"));

您只需要在获取表单数据时将其重新关联即可。

第二件事,由于机器人有很多机会避开您的蜜罐领域(25%的机会),因此请增加罐的数量。 使用其中的10或20个,您会增加机器人的难度,而html中不会有太多的开销。

Arkh answered 2020-01-24T13:18:04Z

2 votes

斯布拉姆! 是类似于Akismet的开源过滤器。

它使用朴素贝叶斯过滤,检查发件人的IP和多个分布式黑名单中的链接,检查HTTP请求的正确性以及使用JS作为提示(但不是必需)。

Kornel answered 2020-01-24T13:18:29Z

2 votes

常规的验证码现在可解决垃圾邮件机器人。

相反,请考虑“文本验证码”:一个逻辑或常识性问题,例如“ 1 + 1是多少?” 或“吉斯塔德将军的白马是什么颜色?” 这个问题甚至可以是静态的(每次尝试都相同的问题)。

cD45O.jpg

(Taken from http://matthewhutchinson.net/2010/4/21/actsastextcaptcha )

我认为Jeff Atwood甚至在他的博客上使用了这样的验证。 (如果我错了纠正我)

一些资源:

文字验证码网站和服务:[http://textcaptcha.com/demo]

插件:[http://matthewhutchinson.net/2010/4/21/actsastextcaptcha]

有关带有无效代码的文本验证码的更多信息:[http://www.thesamet.com/blog/2006/12/21/fighting-spam-on-phpbb-forums/]

rlb.usa answered 2020-01-24T13:19:20Z

1 votes

您可以尝试使用Akismet这样的第三方。 API密钥免费供个人使用。 另外,Zend框架为此提供了一个程序包。

Kieran Hall answered 2020-01-24T13:19:40Z

1 votes

大多数漫游器只需填写整个表格并将其发送给您。 一个有效的简单技巧是创建一个通常使用javascript隐藏的普通字段。 在服务器端,只需检查此字段是否已填写。 如果是这样-肯定是垃圾邮件。

clops answered 2020-01-24T13:20:01Z

1 votes

禁止链接。 没有链接,垃圾邮件是没有用的。

[编辑]作为一种中间方法,仅允许链接到“良好”的网站(通常是您自己的网站)。 其中只有少数几个,因此您可以根据用户的要求添加它们,也可以保留评论,直到您验证链接。 好的时候,添加它。

一段时间后,您可以关闭此功能并自动拒绝带有链接的评论,并等待用户投诉。

Aaron Digulla answered 2020-01-24T13:20:30Z

1 votes

我通过以下简单的数学问题减少了网站上约99%的垃圾邮件:

什么是2 + 4 [TextBox]

如果用户回答“ 6”,则将能够提交问题/评论。

为我工作,为Coding Horror的Jeff Atwood提供类似的解决方案!

azamsharp answered 2020-01-24T13:21:03Z

0 votes

在我的博客上,我有一种折衷的验证码:如果帖子包含链接,则仅使用验证码。 我还使用蜜罐输入字段。 到目前为止,这已经接近100%有效。 时不时会有垃圾邮件发送者向不包含链接的每种表单提交内容(通常是类似“不错的网站!”之类的内容)。 我只能假设这些人认为我会通过电子邮件向他们发送电子邮件以查明他们是谁(使用只有我看到的电子邮件地址)。

Kip answered 2020-01-24T13:21:24Z

0 votes

除了使用蜜罐字段,我们还可以自动禁止该IP(不适用于动态IP),尤其是由漫游器回传的任何链接。

Sanil answered 2020-01-24T13:21:44Z

0 votes

Akismet是一个不错的选择,他们可以检查您的帖子中是否包含垃圾邮件,并且工作效率很高。您只需要加载他们的书呆子。[http://akismet.com/development/]

answered 2020-01-24T13:22:04Z

0 votes

查看一些wp反垃圾邮件插件以获取示例和想法

有很多不用使用验证码的反垃圾邮件。

我建议一些:hashcash,nospamnx,Typepad反垃圾邮件。所有这些都使用不同的方法来阻止垃圾邮件,我全部使用它们。 hashcash + nospamnx几乎阻止了所有spambot。 而键盘防垃圾邮件可阻止大多数人类键入的垃圾邮件。

这些也很不错:spambam,wp-spamfree,反验证码,不良行为,httpbl等

还可以通过简单的.htaccess阻止任何不是来自您自己站点的bot直接POST(检查引荐来源)

或者,只需将您的评论系统外包给争论和沉睡。

DennyHalim.com answered 2020-01-24T13:22:47Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于BERT构建新闻文本分类模型,并结合node.js + vue完成了一个可视化界面。 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值