马上注册,免费下载更多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, $
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|