browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

防范表单机器人的恶意POST

Posted by on 2006 年 10 月 18 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

近一段时间马说这个站总是遭到表单机器人的骚扰,于是请教了某男Y,得到了一个解决方案:由服务器产生一个随机数(如时间)保存在session中并作为隐藏表单域提交,在接收表单数据时提取session数据与提交的数据相比较,如数据一致则为合法提交,否则为非法提交。现将某男Y给出的样例代码共享如下,并表示感谢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
//post前
session_start();
$code = time();
 
$_SESSION['code'] = $code;
?>
<form>
//.....some inputs
<input type="hidden" name="check" value="<?php echo $code?>">
</form>
 
<?php
//post 后
if($_POST['check'] != $_SESSION['code'])
{
    exit('非正常提交');
}
else
{
    //do post and insert into db
}
?>

不过突然发现这厮写注释的时候中英文混用,无条件B4一下先。

订阅本站

5 Comments

  • At 2006.10.18 15:15, Kedy said:

    有些随意。呵呵。

    • At 2006.10.20 12:16, said:

      • At 2006.10.22 21:01, z said:

        减肥ing

        • At 2006.10.23 13:31, . said:

          感觉这种方法还是比较好滴
          知道.htaccess文件怎么写的 比较完整点的
          比如只允许页内程序访问站点的某一文件夹下的文件,而阻止其他的用户直接访问.谢谢啊 校友 呵呵

          • At 2006.10.27 11:31, . said:

            用完了还是建议把session destory掉饿,饿耗费内存 呵呵

            (Required)
            (Required, will not be published)