<?php
/**
* FileName:test.php
* Summary: 防采集
*/
$HTTP_REFERER = $_SERVER["HTTP_REFERER"];
$HTTP_USER_AGENT = $_SERVER["HTTP_USER_AGENT"];
$SERVER_NAME = $_SERVER["SERVER_NAME"];
$CompCharArr =explode(",","Baiduspider,Scooter,ia_archiver,Googlebot,FAST-WebCrawler,MSNBOT,Slurp");
$CompCharArrSize = sizeof($CompCharArr);
$CheckSign = "";
for($i=0;$i<$CompCharArrSize;$i++)
{
$ComChar = trim($CompCharArr[$i]);
if($CompChar<>"" && eregi($CompChar,$HTTP_USER_AGENT))
{
$CheckSign = "T";
}
}
$SERVER_NAME_M = "http://".$SERVER_NAME;//strlen
$EndLenth = strlen($SERVER_NAME_M) + 1;
$CompServerName = "http://".$SERVER_NAME."/";
if(empty($CheckSign) &&($HTTP_REFERER == "" or substr($HTTP_REFERER,0,$EndLenth) <>$CompServerName ))
{
?>
<html>
<body>
<form action=‘ name=checkrefer id=checkrefer method=post></form>
<script>
document.all.checkrefer.action=document.URL;
document.all.checkrefer.submit();
<?php }?>
PHP防采集方法代码
时间: 2024-10-31 13:50:45
PHP防采集方法代码的相关文章
PHP 采集大全 采集原理分析 禁用采集 各种采集方法详解 采集的攻于防 采集性能 应用协议分析
//py by http://my.oschina.net/cart 做了N年的PHP,采集了N家数据,由初学者菜鸟,到现在的熟手,采集天猫.淘宝.腾讯.京东.敦煌.Lightinthebox.大龙.zencart.magento.prestashop.opencart.xcart.踏踏....对采集颇有诸多的理解. 现在给大家分析下,如有误,请指出. 我能想到的常用采集方法: 1. file 支持应用层协议,返回的数据是以数组形式返回,需要开启allow_url_fopen. 长处:擅长处理本
防采集与反爬虫常见的策略以及解决思路
1.限制IP单位时间访问次数还有频率 背景:没有哪个常人一秒钟内能访问相同网站N次(不管是不是同一个网页) 解决办法:一般遇到这种情况我们就放缓采集频率,不管你写代码添加Sleep,或者在我们八爪鱼里面设置间隔时间都可以解决 进化1:有些高级点的防采集策略,他甚至监控到每个请求的频率,如果一直处于同一个频率,比如一秒一次,他也是会封. 解决办法:这种情况一般就需要我们在采集间隔里面加上随机数,每次访问的频率相对随机. 进化2:有些更残忍的防采集策略,他甚至会监控每IP每天或每时段请求网页的数
php防攻击方法
php防攻击方法 更多答案 请参考 @如何有效防止XSS攻击/AJAX跨域攻击 我说下防止非法用户的一些常用手段吧 1 前端的js验证: 我认为js验证只是一种用户体验的提升,对普通用户群体的简单限制,所以后台必须要有相应的验证.. 2表单中的隐藏域 : 相信大家都遇到过这样的问题,如: 用户从 A 页面 点如 B 页面,B页面是个表单,这个表单中有个隐藏域,用来记录从A页面带来的数据(像id等),用户提交时 在后台修改,新增数据都是依赖这个隐藏域的值,如果这里不做好验证的话,很可能被用户修改隐
.NET软件防破解方法源码混淆
其实我们只要在软件设计的关键几个环节,利用专业的控件进行保护,就可以保证软件的安全.我们可以在软件设计时和运行时对软件代码进行保护.在设计时的保护,主要的保护手段是,混淆源码:在运行时的保护主要的手段是加壳程序和授权控制.下面我们分别对混淆.加壳.授权控制的方法和采用的控件做一一讲解. 源码混淆 源码混淆就是通过对程序源码的分析,改变源码的原始面貌,降低源码可读性,可对函数甚至流程进行混淆.虽然目前很多开发工具都能进行简单的混淆,不过实用性不大,采用专业的混淆控件对程序源码能起到有效的保护,有些
linux 防爆破方法
利用pam 认证模块锁定多次登陆失败的用户 pam 模块存放在 /lib/security/pam_*****.so 编辑 /etc/pam.d/sshd 添加以下内容 auth required pam_tally2.so deny=5 lock_time=60 当用户通过ssh 尝试登陆系统密码输错5次,系统就锁定该账户60S 验证: 手动解除锁定命令 pam_tally2 --reset -u 用户 linux 防爆破方法,布布扣,bubuko.com
nginx+lua+redis实现验证码防采集
之前介绍过在nginx里如何嵌入lua模块,利用nginx+lua可以很好的开发开发nginx的业务逻辑,并且达到高并发的效果. 下面我们就来介绍下利用nginx+lua+redis实现防采集的功能. 现象: 网站在为用户提供服务的同时也在被搜索引擎.采集器不断的抓取,可能会造成网站不堪重负,导致页面放回5XX错误.针对此种情况,我们就要对采集器及搜索引擎来进行访问控制,当然对搜索引擎的控制可能会影响网站的收录. 功能描述: nginx+lua在前端实现客户端的访问控制,将客户端的访问信息记入r
Java中替换HTML标签的方法代码
这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").replaceAll("<[^>]*>", "\n\t") 源码如下: /** * 字符串替换 */ package com.you.model; /** * HTML标签替换 * @author YHD * @version */ public cla
C++ - goto的使用方法 代码
goto的使用方法 代码 本文地址: http://blog.csdn.net/caroline_wendy goto语句是无条件转移语句, 不建议使用, 但需要掌握语法. goto可以跳过一些语句, 直接执行其他语句, 可以用于循环. 代码: /* * main.cpp * * Created on: 2014.9.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <iostream> using namespace std;
CMDB3 完善采集端代码(ssh方案的多线程采集), 异常处理, 服务端目录结构的设计(django的app), API数据分析比对入库
完善一下采集端代码 ssh方案的多线程采集 线程和进程,协程的区别 (90% 问到) 提高并发的话,使用多线程 python2 多进程有 多线程没有 python3 多进程有 多线程有 from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor p = ThreadPoolExecutor(10) def test(i): time.sleep(1) print(i) for i in range(100): p.s