• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > 在博客中屏蔽垃圾留言的简单方法

在博客中屏蔽垃圾留言的简单方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了垃圾箱常客的博客,垃圾箱博客,垃圾分类博客,股市垃圾王博客,垃圾箱常客新浪博客等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

垃圾留言俗称 Spam,就是到处在留言框里发垃圾广告的那些,相信大多数人都见识过。以前使用 WordPress 的时候,因为装了防 Spam 的插件,可以屏蔽掉绝大多数的 Spam。但是自从上个月从 WordPress 迁移到新的博客平台后,第一天上线就遭遇了几个Spam,全都是国外的推广的广告什么的。博客的访问量本身就很小,如果每天都来几条 Spam,太煞风景了,手工删除也太浪费时间,而且又是自己写的小系统,也不可能有什么插件可选,只能自己想办法解决了。

看到有很多网站都是加个验证码来解决这个问题的,因为 Spam 很难从图片中识别出正确的验证码,但是对于正常的留言者来说,又凭空多了一个步骤,那么除此之外还有什么方法能屏蔽这些 Spam 呢?

仔细分析一下,正常的留言应该是人类通过浏览器提交数据到我们的服务器,而 Spam 通常都是由固定的程序在互联网上扫描评论表单,伪造表单中的数据,然后判断表单的action,然后将数据 POST 到这个action上来。也就是说,Spam 发送方都没有正常地通过浏览器访问过我们的表单页面,也就是说,页面上的 JavaScript 都没有执行过咯,明白这个特点,那问题就迎刃而解了。

首先,我们可以在表单中放一个隐藏的文本框,这个文本框对正常用户来说是不可见的:

<div style="margin:0;padding:0;display:inline">
  <input id="checkspam" name="checkspam" type="hidden" value="Hello Ruby" />
</div>

</div>

然后再写一小段 JavaScript 代码来改变这个文本框的值:

jQuery(document).ready(function($) {
  $("#checkspam").val('abcdefg');
});

</div>

由于对于 Spam 发送者来说,这段 JavaScript 是没有被执行的,那么接下来要做的事情就是在服务端判断这个隐藏文本框的值了,如果不是 JavaScript 所更改后的值,那么这条留言无疑就是 Spam 了(排除正常用户的浏览器禁用 JavaScript 的情况)。

下面以 Ruby on Rails 应用为例:

if params[:checkspam] == "abcdefg"
 @comment.save
else
 # It's a spam...
end

</div>

其实,这个隐藏文本框的作用跟验证码是一样的,只不过这个验证码是由 JavaScript 帮忙自动输入了。

用了这个方法至今一月有余,目前没有再发生过 Spam 的情况。

</div>

您可能想查找下面的文章:

  • 在博客中屏蔽垃圾留言的简单方法

相关文章

  • 利用Ruby的SOAP4R编写SOAP服务器的教程
  • ruby执行周期性任务的三种gem介绍
  • Ruby中常用的字符串处理函数使用实例
  • ruby写扫描当前网页所有url的脚本
  • Ruby常量查找路径问题深入研究
  • 在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境
  • 什么是ruby和Ruby概述
  • 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
  • 几个加速Ruby on Rails的编程技巧
  • 浅谈Ruby on Rails的国际化

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ruby中的钩子方法详解
    • Ruby中的Range对象学习笔记
    • Rails中遇到错误跳转到统一提示错误页的方法
    • Ruby优化继承类实例
    • 使用Ruby re模块创建复杂的正则表达式
    • 详解Ruby on Rails中的Cucumber使用
    • ruby 一些简单的例子
    • Ruby 中$开头的全局变量、内部变量、隐藏变量介绍
    • Ruby中钩子方法的运用实例解析
    • Ruby on Rails在Ping ++ 平台实现支付

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有