2007/06/27

18

用 CSS 武器阻击垃圾留言!

sfufoet , 10:00 am / 2,480 pv / 分享到微博

用 CSS 武器阻击垃圾留言!  哦也,当我看到原文的标题时,我就忍不住点击 blog it 发布到煎蛋来了。真的是很棒的教程!作者说,自从用了这招,垃圾留言狂跌到 0 个。

  我们先来看招:

  下面是简单的 HTMl 代码:

<form method="post" action="process.php">  
<fieldset>
  <label>Name: </label><input name="name" type="text" /><br />
  <label>Email: </label><input name="email" type="text" /><br />
  <label>Comment: </label><input name="comments" type="text" /> <input name="info" class="special" type="text" />
  <input value="Send" type="submit" />  
</fieldset>
</form>

  这段代码的关键是:在显示 Comment 的地方有两个输入框,第一个(info 输入框)是给专门制造垃圾留言的爬虫(Spammer)用的,第二个是给人类用的。
# Copyright for Jandan.net(http://jandan.net/)
  CSS 代码:

body {
line-height:35px;
font-family:Arial, Helvetica, sans-serif;
color:#333;
font-size:14px;
}
.special {
width:5px;
visibility:hidden;
}

  body 部分很普通,关键是 .special ,info 输入框就是调用了这个样式。因为 info 输入框的宽度只有 5 像素,而且它不可见,就是说它无法显示在网页上,所以我们人眼看不到。而Spammer可就没长眼睛啰,它们会以为这里是要填写的。

  所以,我们只需要在 process.php (当然也可以是其他语言编写的)里,这样处理:只要 info 输入框里面有数据的话(是人就不会在 info 里输入东西的,哈哈,因为我们看不见它。),数据就不会写进数据库。

  当然道高一尺,魔高一丈。这个小技巧也是很容易破解。不过,有招总比没招好。大家可以在这里看到测试页面,该测试页面也给出了 process.php 的处理代码。我想,没有人会喜欢那些乱七八糟的验证码。

来源 | 链接

[ 上 ] [ 下 ]已有18条评论

  1. fires @ 2007-06-27 10:18:01 #1

    我只想跳出大喊一声,沙发

    oo (0) / xx (0)
  2. 耗子小三 @ 2007-06-27 10:21:54 #2

    我只想跳出来对一楼大喊一声:不许动!!!

    oo (0) / xx (0)
  3. sein @ 2007-06-27 10:22:38 #3

    这个想法太有才了

    oo (0) / xx (0)
  4. 火星人 @ 2007-06-27 10:33:57 #4

    的确比较巧妙,但是绕过也很容易

    oo (0) / xx (0)
  5. sfufoet @ 2007-06-27 10:37:37 #5

    这个只能用来对付一部分 Stupid Spammer 。

    oo (0) / xx (0)
  6. longinus @ 2007-06-27 16:04:33 #6

    厉害厉害,不得不服。

    oo (0) / xx (0)
  7. 黑星星 @ 2007-06-27 16:40:47 #7

    什么人想出了这么NB的办法啊

    oo (0) / xx (0)
  8. IwfWcf @ 2007-06-27 17:35:39 #8

    这个方法还有违反搜索引擎规定的嫌疑吧?

    oo (0) / xx (0)
  9. vampire @ 2007-06-27 17:50:58 #9

    聪明啊~

    oo (0) / xx (0)
  10. TJ @ 2007-06-28 09:32:21 #10

    我想试试

    oo (0) / xx (0)
  11. islet8 @ 2007-06-28 09:38:41 #11

    这个办法能解决垃圾trackback么?我在wp里感觉垃圾tb比垃圾留言多多了

    oo (0) / xx (0)
  12. leavic @ 2007-06-28 11:05:32 #12

    麻烦讲讲process.php的修改,这才是关键

    oo (0) / xx (0)
  13. tobe @ 2007-06-28 11:08:39 #13

    @leavic 测试页面那个链接里面有

    oo (0) / xx (0)
  14. 火星人feuvan @ 2007-06-29 14:29:12 #14

    11楼的
    Trackback Validator

    oo (0) / xx (0)
  15. 华华 @ 2007-08-16 17:38:16 #15

    为防止搜索引擎 XX
    不要 visibility:hidden;
    直接让绝对定位到屏幕外好了

    oo (0) / xx (0)
  16. 網頁設計 @ 2007-10-01 10:41:17 #16

    哈哈~很妙,蠻有用的

    oo (0) / xx (0)
  17. eric @ 2009-01-31 20:28:23 #17

    果然好办法.

    oo (0) / xx (0)
  18. olapla @ 2009-07-18 00:08:29 #18

    @IwfWcf:对于引擎,不知道。不过对视力辅助的读屏软件是有干扰的。
    @华华:正解~

    个人感觉,你已公布,你就完了~~ 呵呵~

    oo (0) / xx (0)

填写称呼和邮箱即可发布评论[ 上 ] [ 优 ] [ IMG ]