服务器如何判断访问来源
① 服务器如何判断post请求者身份
一般有两种方法,一种传统的用cookie
另一种是通过token的方式,就是你说的那种
referer的方式不可行,只要用户可以修改的数据都不可信,而token是用户登录后服务端下发的,原则上客户端不能自己生成,所以可以验证身份
② 在WEB服务器端,如何判断访问来源是否是软件
无法判断,除非你的软件请求时带了一串加密字符串,按一定规则加密的,服务器端验证。
③ 如何判断一个http请求是来自浏览器还是其他终端
原理和实现方法如下:
1、手机访问网站时时,会附带发送user-agent信息,这个信息里面会有手机号码信息,则可以肯定是通过手机wap访问的。
2、但是目前中 国移动已经屏蔽了user-agent信息,所以获取不到手机号码。可以把wap网站服务器的ip提交给中国移动,加入白名单 后即可取得ua信息。目前中国联通可以直接取到手机号,对联通用户此方案可完美实施。
3、手机访问,原理是手机通过移动公司的代理服务器进行的访问。那么就可以理解是一台普通电脑使用了代理服务器。当手机通过代理服务器访问的时候,http头信息会毫无疑问的包含一个信息:via。这个信息提供了有价值的判断信息。可以实现判断是否是移动终端。
4、另外现在移动端的浏览器都会请求移动版的网页,所以可以直接判断出的。
④ 访问外网时,外网的服务器如何知道是我的电脑访问的
你的电脑发送的数据是以报文的形式发送的。当你向外网服务器发送请求之后,服务器给你发送数据的时候,会将你的IP地址添加在报文的头部,当这个报文到达路由器的时候,路由器会根据这个头部查找IP列表,然后将数据发送到你的电脑上面。 当然我这个解释简单点,但是基本是可以这样理解的,因为以太网数据传输的时候会更复杂一些
⑤ 服务器,怎么判断一个http请求是来自浏览器
1、如服务器提供了web服务,则通过服务器本身的web平台查看会话记录;
2、通过本机的防火墙软件查当前会话情况(主要看协议);
3、netstat -an 查看分析;
4、抓包软件查看会话(例如wireshark).
以上各种方法都可以
⑥ 如何判断用户是从地址栏来访问服务器
一般来说可以用 request.ServerVariables("HTTP_REFERER") 判断上一页的来源.如果直接打入地址 这个值是空的 否则可以显示上一页的地址 当然你要知道是不是点击了图像src属性过来的 那就得不到了 除非你多加个参数来判断
⑦ 服务器如何识别你是用电脑还是手机上的他们的网站
网上现在有三种观点, 一种是基于浏览器发送的 User-Agent, 但明显这种方法是行不通的, 虽然有人列出了大多数的手机发送的User-Agent, 但依然会有很多手机无法识别, 甚至有些手机浏览器不发送User-Agent, 而且也不能保证以后就不会出新牌子. 下面是一个php的例子, 看过之后你就会知道有多么不可靠. 1. function is_wap(){ 2. $ua = strtolower($_SERVER['HTTP_USER_AGENT']); 3. $uachar = "/(dpwapmobile)/i"; 4. if(($ua == '' preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')){ 5. return true; 6. }else{ 7. return false; 8. } 9. } 另外一种是判断HTTP_ACCEPT, 这种应该相对可靠一点, 不过HTTP_ACCEPT是非常复杂的, 如果一般的不支持html的浏览器还好说, 你只要判断浏览器支持wml并且不支持html就可以, 但如果浏览器同时支持wml和html那就难办了, 低端手机可能会将wml放到html的前面, 但是很多高端手机或者智能手机对html的支持很好, 所以html也会出现在wml前面. 这是黑莓手机发送的HTTP_ACCEPT application/vnd.rim.html, text/html, application/vnd.wap.xhtml+xml, text/vnd.sun.j2me.app-descriptor, image/vnd.rim.png,image/jpeg, application/x-vnd.rim.pme.b, application/vnd.rim.ucs, image/gif;anim=1, application/vnd.rim.jscriptc;v=0-8-8, application/x-javascript, application/vnd.rim.css;v=1, text/css;media=handheld, application/vnd.wap.wmlc;q=0.9, application/vnd.wap.wmlscriptc;q=0.7, text/vnd.wap.wml;q=0.7, */*;q=0.5 夸张吧? 不过的确是很标准的, 开发人员可以根据这个得到很多信息, 但很多手机都没这么标准的, 如果你查看IE或者FF的HTTP_ACCEPT你会发现它很短. text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8 同样, 给你个php的例子. if (isset($_SERVER['HTTP_ACCEPT']) && (strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')!==FALSE) && (strpos($_SERVER['HTTP_ACCEPT'],'text/html')===FALSE (strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'],'text/html')) )) {//手机访问 readfile('index.wml'); } else readfile('index.htm'); 原理:如果浏览器支持WML、而且[不支持HTML]或[WML优先于HTML],则判定为手机。但实际上这个原理是不正确的. 还有一种是说判断网关或者IP什么的, 但我个人认为这个很不可靠, 手机的联网方式很多, 比如我开发的时候就是用模拟器的.这个应该不用什么例子了, REMOTE_ADDR 就足够了. 以上是我今天上午的工作成果, 但实际上还是没有找到完美的解决方案, 先写这么多, 有问题请补充或者发送消息给我, 如果你有更好的办法希望可以分享给我, 谢谢.
⑧ 一个IP下挂载了好多网站,用户在浏览器上输入这个IP地址,服务器是如何判断该访问挂载的哪个网站
虚拟主机技术,是服务器根据请求内的域名信息来区分不同网站的。
⑨ 如何判断HTTP请求来源的正确性
在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,你可以利用如下方法判断某个请 求是ajax请求还是普通请求 if ( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) { //ajax request } else { // not ajax request } 在使用原生 JavaScript 发出 ajax 请求时,我们也可以给头部添加信息,以方便后端同学进行区分,方法如下: 1 var xmlhttp=new XMLHttpRequest(); 2 xmlhttp.open("GET","test.php",true); 3 xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 4 xmlhttp.send();
⑩ 如何判断访问的用户是正常用户,还是爬虫
网站会通过以下几个方面来识别对方是爬虫还是真实用户,让我们一起来看看吧。
一、单一IP非常规的访问频次
我们经常会遇到这样一种情况,提示“刷新频率过快,请歇一会”,这都是网站为了缓解压力才对“用户”作出的限制。而爬虫相对于真实用户来说访问的频次更快,如果单一IP访问频次非常高,那么将会被判为“爬虫”,进而受到限制。
二、单一IP非常规的数据流量
当单一IP的数据流量非常大时,也会引起网站的注意。说到数据流量有些朋友就会有疑问了,下载站的数据流量大也是很正常的。这里说的数据流量不只是单一的下载数据流量,而是大量的并发请求。高并发请求很容易对服务器造成高负荷,所以受到限制也是很正常的。为了避免这个因这个原因被封可以用个ip池量大的http比如ipidea每日覆盖全球的ip资源。
三、headers头部校验
除了上面比较明显的爬虫行为,网站还会校验headers。headers头部的参数很多,其实也容易伪装,但有些初学者往往会忽略。比较常见的是User-Agent、Referer这两个参数,不同的浏览器有不同的User-Agent,访问来源也各不相同,如果不注意的话,很容易被识别。
四、链接
我们知道,爬虫爬取页面时,会识别页面中所有的URL地址去爬取,特别是一些没有明确目标的爬虫。有的网站会将一些链接放在CSS里或者JS里,这些链接正常用户是不会去访问的,它们就相当于陷进,作用是钓出爬虫,一不小心就容易中招。
以上是比较常见的识别爬虫的手段,要想不被目标网站这么快识别,就要有效的规避这几点,做好爬虫策略,当然反爬手段远远不止这些,这就需要好好研究了。