·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
返回列表 发布新帖

请帮我写一个网站防采集代码,需要用到PHP网站上

152 5
发表于 2023-3-30 11:37:17 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
网站防采集是一个比较复杂的问题,因为采集者可以使用各种手段绕过防护措施。不过,以下是一些常见的防采集技巧,你可以参考一下:

    User-Agent 检测:检查访问者的 User-Agent 是否为浏览器,如果不是,则判定为采集程序。
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][backcolor=rgba(52,53,65,var(--tw-bg-opacity))][size=0.75]phpCopy code
if (stripos($_SERVER['HTTP_USER_AGENT'], 'Mozilla') === false) {    exit('禁止采集!');}

    Referer 检测:检查访问者的 Referer 是否为本站,如果不是,则判定为采集程序。
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][backcolor=rgba(52,53,65,var(--tw-bg-opacity))][size=0.75]phpCopy code
if (strpos($_SERVER['HTTP_REFERER'], 'http://www.yourwebsite.com') === false) {    exit('禁止采集!');}

    访问频率限制:设置一个时间间隔,如果短时间内访问次数过多,则判定为采集程序。
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][backcolor=rgba(52,53,65,var(--tw-bg-opacity))][size=0.75]phpCopy code
$seconds = 10; // 时间间隔,单位为秒$count = 0;$log_file = 'access.log'; // 记录访问日志的文件名// 读取访问日志if (file_exists($log_file)) {    $log = file_get_contents($log_file);    $log_array = explode("\n", $log);    $last_time = end($log_array);    $time_diff = time() - $last_time;    foreach ($log_arrayas$log_item) {        if (time() - $log_item <= $seconds) {            $count++;        }    }}// 写入访问日志$fp = fopen($log_file, 'a');fwrite($fp, time() . "\n");fclose($fp);// 判断访问频率if ($count > 10) {    exit('禁止采集!');}

    图片验证码:在关键页面或者操作上添加图片验证码,要求用户输入验证码才能继续操作。
[backcolor=rgba(0,0,0,var(--tw-bg-opacity))][color=rgba(217,217,227,var(--tw-text-opacity))][backcolor=rgba(52,53,65,var(--tw-bg-opacity))][size=0.75]phpCopy code
session_start();$code = ''; // 验证码$width = 80; // 图片宽度$height = 30; // 图片高度$font_size = 16; // 字体大小$font_file = 'arial.ttf'; // 字体文件路径$code_length = 4; // 验证码长度// 生成随机验证码for ($i = 0; $i < $code_length; $i++) {    $code .= chr(rand(97, 122));}// 将验证码保存到 session 中$_SESSION['code'] = $code;// 创建图像$image = imagecreatetruecolor($width, $height);// 设置背景颜色$bg_color = imagecolorallocate($image, 255, 255, 255);imagefill($image, 0, 0, $bg_color);// 设置文本颜色$text_color = imagecolorallocate($image, 0, 0, 0);// 添加验证码文本imagettftext($image, $font_size, 0, 10, $height / 2 + $font_size / 2, $text_color, $font_file, $
我要说一句 收起回复
创宇盾启航版免费网站防御网站加速服务

评论5

IT618发布Lv.8 发表于 2023-3-30 11:38:00 | 查看全部
这复制的代码 还不如不复制
我要说一句 收起回复
IT618发布Lv.8 发表于 2023-3-30 11:38:08 | 查看全部
很耗服务器资源,而且作用不大。一般都是主页延后更新,删列表页,文章URL不要有规律生成,内链每10个一组互相交叉对链,等等...
我要说一句 收起回复
IT618发布Lv.8 发表于 2023-3-30 11:38:17 | 查看全部
你想让蜘蛛抓取就别怕被采集,只能防防小白。
我要说一句 收起回复
IT618发布Lv.8 发表于 2023-3-30 11:38:44 | 查看全部
防采集的代码可以包括以下几个方面:

1.通过IP地址识别采集者,将其IP地址加入黑名单。

2.通过浏览器识别采集者,通过User-Agent、Referer、Cookie等头部信息来识别采集者,需要将其浏览器的指纹进行记录并加入黑名单。

3. 采用无框架网页的方式,使得采集者无法通过框架来采集数据。

4. 采用图像验证码、滑动验证码等方式来防止机器人采集数据。

具体实现代码:

IP黑名单:

```
$blacklist = array('1.2.3.4','5.6.7.8'); //设置黑名单IP
$ip = $_SERVER['REMOTE_ADDR']; //获取访客IP
if(in_array($ip, $blacklist)){ //如果为黑名单IP则不处理输出
    exit;
}
```

浏览器指纹:

```
$ua = $_SERVER['HTTP_USER_AGENT']; //获取User-Agent头部信息
$referer = $_SERVER['HTTP_REFERER']; //获取Referer头部信息
$cookie = $_COOKIE; //获取Cookie信息

$key = md5($ua.$referer.json_encode($cookie)); //生成浏览器指纹
$blacklist = array($key); //设置黑名单浏览器指纹
if(in_array($key, $blacklist)){ //如果为黑名单浏览器指纹则不处理输出
    exit;
}
```

无框架网页:

```
<!DOCTYPE html>
<html>
    <head>
        <title>无框架网页</title>
        <script type="text/javascript">
            if(top != self){
                top.location.href = self.location.href;
            }
        </script>
    </head>
    <body>
        <!-- 此处为网页内容 -->
    </body>
</html>
```

验证码:

```
<?php
session_start();
if(isset($_POST['submit']) && isset($_POST['captcha'])){
    if($_SESSION['captcha'] == $_POST['captcha']){
        //验证码正确,执行操作
    }else{
        //验证码错误,返回错误提示
    }
}
?>
<form method="post">
    < img src="captcha.php" /><br>
    <input type="text" name="captcha" /><br>
    <input type="submit" name="submit" value="提交" />
</form>
```

captcha.php文件:

```
<?php
session_start();

$width = 100; //验证码图像宽度
$height = 30; //验证码图像高度
$code = ''; //验证码

$image = imagecreatetruecolor($width, $height); //创建图像
$bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景色
$textColor = imagecolorallocate($image, , , ); //设置文字颜色
$lineColor = imagecolorallocate($image, 220, 220, 220); //设置线条颜色

imagefilledrectangle($image, , , $width, $height, $bgColor); //填充背景色

//生成随机字符
$chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len = strlen($chars);
for($i=; $i<4; $i++){
    $code .= $chars[rand(, $len-1)];
}

//绘制验证码
imagestring($image, 5, 10, 8, $code, $textColor);

//绘制干扰线
for($i=; $i<3; $i++){
    imageline($image, rand(, $width), rand(, $height), rand(, $width), rand(, $height), $lineColor);
}

$_SESSION['captcha'] = $code; //将验证码存入Session

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
我要说一句 收起回复
浅生Lv.8 发表于 2023-3-30 11:39:03 | 查看全部
豆瓣的防采集算是比较niubi的了,但是还是会被人采集!其实可以想点别的方法,比如文章里加隐藏链接,或者放点wf文字,对方采集后举报对方网站!
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.145.164.139,GMT+8, 2024-11-10 00:27 , Processed in 0.554780 second(s), 100 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表