1. 如何判断访问的用户是正常用户,还是爬虫
网站会通过以下几个方面来识别对方是爬虫还是真实用户,让我们一起来看看吧。
一、单一IP非常规的访问频次
我们经常会遇到这样一种情况,提示“刷新频率过快,请歇一会”,这都是网站为了缓解压力才对“用户”作出的限制。而爬虫相对于真实用户来说访问的频次更快,如果单一IP访问频次非常高,那么将会被判为“爬虫”,进而受到限制。
二、单一IP非常规的数据流量
当单一IP的数据流量非常大时,也会引起网站的注意。说到数据流量有些朋友就会有疑问了,下载站的数据流量大也是很正常的。这里说的数据流量不只是单一的下载数据流量,而是大量的并发请求。高并发请求很容易对服务器造成高负荷,所以受到限制也是很正常的。为了避免这个因这个原因被封可以用个ip池量大的http比如ipidea每日覆盖全球的ip资源。
三、headers头部校验
除了上面比较明显的爬虫行为,网站还会校验headers。headers头部的参数很多,其实也容易伪装,但有些初学者往往会忽略。比较常见的是User-Agent、Referer这两个参数,不同的浏览器有不同的User-Agent,访问来源也各不相同,如果不注意的话,很容易被识别。
四、链接
我们知道,爬虫爬取页面时,会识别页面中所有的URL地址去爬取,特别是一些没有明确目标的爬虫。有的网站会将一些链接放在CSS里或者JS里,这些链接正常用户是不会去访问的,它们就相当于陷进,作用是钓出爬虫,一不小心就容易中招。
以上是比较常见的识别爬虫的手段,要想不被目标网站这么快识别,就要有效的规避这几点,做好爬虫策略,当然反爬手段远远不止这些,这就需要好好研究了。
2. 网站如何判断出用户身份
网络安全中心识别系统怀疑你的账号补盗,或上网出现异常,常提醒你重新登陆验证。一是按照提示进行操作,如果感觉还是有问题,不能成功登陆,建议你进行人工申诉。这需要你提供自己的一些真实信息,比如,从前注册的账户名称,曾使用过的密码,邮箱、手机号,经常上网所在的城市地点,上网付费方式等等。网络安全中心核查后,让你重新设定新密码,给你新的验证码,问题就解决了。
3. 网站怎么辨别用户
换IP 清除COOKIE,
4. 网页怎么识别你已注册过
网站识别用记一般分为:
1.识别你的IP
记下你的网络IP,判断是否为同一IP,如果是同一IP,不让注册,你的同一IP仍可以注册,说明网站没有对IP限制。
2.给你一个session值
IE一关就丢失,你的是这个有记录和限制,没必要关机重启,只需要把你的internet
explorer打开的该网站的全部网页都关掉就可以重新打开用了。
3.给你一个applaction值
网站的服务器重启时时,该值丢失。这个通常用来当计数器和聊天室之类的对全局用户用的。
4.在你的电脑上写下cookies。
关机不丢失,用户可以清除COOKIES,
这几个可以同时使用来判断你的信息。
5. 网站怎么检测用户ID
这个要根据你具体后台使用的中间件程序来说
如果你用的nginx,按以下配置:
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
句法:proxy_set_header field value;
默认:proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
语境:http,server,location
允许将字段重新定义或附加到传递给代理服务器的请求标头。
该value可以包含文本,变量,以及它们的组合。
当且仅当proxy_set_header 在当前级别上没有定义指令时,这些指令才从先前级别继承 。默认情况下,只重新定义了两个字段:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
If caching is enabled, the header fields “If-Modified-Since”, “If-Unmodified-Since”, “If-None-Match”, “If-Match”, “Range”, and “If-Range”
from the original request are not passed to the proxied server.An unchanged “Host” request header field can be passed like this:
如果启用了缓存,则标题字段为“If-Modified-Since”,“If-Unmodified-Since”,“If-None-Match”,“If-Match”,“Range”和“If-Range”来自原始请求不会传递给代理服务器。
未更改的“主机”请求标头字段可以像这样传递:
proxy_set_header Host $http_host;
但是,如果客户端请求标头中不存在此字段,则不会传递任何内容。在这种情况下,最好使用$host变量 - 其值等于“主机”请求标头字段中的服务器名称,或者如果此字段不存在则等于主服务器名称:
proxy_set_header Host $host;
此外,服务器名称可以与代理服务器的端口一起传递:
proxy_set_header Host $host:$proxy_port;
如果标头字段的值是空字符串,则此字段将不会传递给代理服务器:
proxy_set_header Accept-Encoding "";
对应的后台java代码:
public static String getIpAddr(HttpServletRequest request) {
String ip;
int index;
try {
ip = request.getHeader("x-forwarded-for");
// Proxy-Client-IP 这个一般是经过apache http服务器的请求才会有,用apache http做代理时一般会加上Proxy-Client-IP请求头,而WL-Proxy-Client-IP是他的weblogic插件加上的头。
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if(StringUtils.isEmpty(ip)){
return "";
}
index = ip.indexOf(",");
if(index != -1){
return ip.substring(0,index);
}else{
return ip;
}
} catch (Exception e) {
return "";
}
}
6. 网站是如何判断是当前登录用户还是访问用户
使用session和cookie机制,判断,HTTP是无状态协议,并不能记录你的登录状态,这些登录的状态存在浏览器里面
7. 如何判断用户是否登录
一般网站的登录控制都是依靠SESSION判断的,而SESSION一般需要COOKIE的支持。在登录时,网站后台在COOKIE中返回一个SESSIONID,此后,浏览器访问网站时都将这个SESSIONID发给网站,网站通过核对这个SESSIONID来识别用户。
如果,用户在A站登录,它的信息就登记在A站的后台,在B站肯定没有登记,所以是无法登录的。除非能伪造COOKIE信息,要登录正在登录的B站用户。
8. 各大网站是通过什么识别一个用户
IP 是主要的识别方法,IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。
9. 一个网站怎么识别用户是从哪里点击进来的
网站统计,比如网络统计,站长统计,51.la 等等 这类很直观的反应出来。
网站访问日记,不过这些数据不是很明确,需要处理。