js009-客户端检测】的更多相关文章

这是第八章到第十二章的内容,粗略浏览过一遍. 一.BOM 浏览器对象模型.包括了window.location.navigator.screen和history对象. window:核心对象 1.JS访问浏览器窗口的一个借口 2.全局作用域Global对象,所有在全局作用域中生命的变量,函数都会变成window对象的属性和方法.(全局变量不能通过delete删除,而window对象),如果页面中包含框架,并且保存在frames集合中.在frames集合中,可以通过数值索引(从0开始,从左至右,从…
ECMAScript虽然是Javascript的核心,但是要在web中使用Javascript,那么BOM才是核心,BOM为我们提供了操作访问浏览器对象的借口, 但是由于BOM没有标准规范,导致存在不一致的问题,所以这里需要客户端检测的方法,突破局限. 先找出设计通用的的方案,然后再使用特定与浏览器的技术增强该方案. 一.能力检测 能力检测的目的不是识别浏览器,而是识别浏览器的能力.不必顾及特定的浏览器,只需确定浏览器支持特定的能力. //浏览器检测的基本模式 if(object.propert…
1. 客户端检测 1.1 能力检测 在编写代码之前先检测特定浏览器的能力. 1.2 怪癖检测 怪癖实际上是浏览器实现中的bug 1.3 用户代理检测 通过检测用户代理字符串来识别浏览器.用户代理字符串中包含大量与浏览器有关的信息,包括浏览器.平台.操作系统及浏览器版本.…
从客户端检测到有潜在危险的Request.Form值: 在webForm中,可以在aspx页面顶部 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="MaddAptitude.aspx.cs" Inherits="MaddAptitude" %> 中加一句  ValidateRequest="false"  . 或者在web.conf…
asp.net开发中,经常遇到“从客户端检测到有潜在危险的Request.Form 值”错误提示,很多人给出的解决方案是: 1.web.config文档<system.web>后面加入这一句: <pages validaterequest="false"/> 示例: <?xml version="1.0" encoding="gb2312" ?> <configuration> <system…
asp.net开发中,经常遇到“从客户端检测到有潜在危险的Request.Form 值”错误提示,很多人给出的解决方案是: 1.web.config文档<system.web>后面加入这一句: <pages validaterequest="false"/> 示例: <?xml version="1.0" encoding="gb2312" ?> <configuration> <system…
隔了一段时间,现在开始看第8章. 第8章:BOM BOM提供了很多对象,用于访问浏览器的功能.BOM的核心对象是window,它表示浏览器的一个实例. window对象是通过javascript访问浏览器窗口的一个接口,又是ECMAScript中的Global对象. 所有在全局作用域声明的变量.函数都是window对象的属性和方法. 1. 窗口关系,框架 每个框架都有window对象,并在frames集合中 每个window对象都有name属性,其中包含框架名称 top对象始终指向最高(最外)层…
web开发的理想状态之一是浏览器支持一组最常用的功能,但是在现实情况下,浏览器间的差异非常大,因此,为了兼容大部分的了浏览器,开发人员首先需要设计最通用的方案,然后再使用客户端检测的技术增强该方案.客户端检测技术包括能力检测.怪癖检测.用户代理检测,下面我们一一介绍. 一.能力检测  能力检测的目的不是为了识别浏览器,而是识别浏览器的能力:通过检测浏览器具有某种能力后,就可以给出对应的解决方案.如下例所示,IE5以及更早期的IE,不支持getElementById的方法来获取ID,但是支持doc…
用户代理检测 前面的文章介绍的是如何检测浏览器对某一功能的支持情况 但是在实践中我们有些时候免不了需要知道用户到底是用的什么浏览器对我们的站点进行访问 这也是统计用户行为的一部分 用户代理检测这种方式就是用于检测用户访问所使用的浏览器的 那么如何进行检测呢? 我之前的文章,讲JS的navigator对象的时候,其中有个 userAgent 属性 这个属性在每次http请求中都会携带在请求头中,这也是我们常说的用户代理字符串 但是要注意的是,这种客户端检测的优先级应该排在 怪癖检测.能力检测之后…
能力检测 浏览器厂商虽然在实现公共接口方面投入了大量的精力 但是每种浏览器仍旧存在许多差异 为了让网页能跨浏览器的运行,对浏览器差异做的兼容处理自然无法避免 其中最常用的也就是我们现在所说的能力检测 什么是能力检测呢? 说白了,能力检测就是判断浏览器是否具备某个特定功能 然后进行对应的操作 这和浏览器检测有什么区别呢?? 在很多情况下,我们纠结的不是用户使用的是什么浏览器 而是用户使用的浏览器是否有我们将要使用的功能,我们没有必要去管用户用的是什么浏览器,只需要知道用户浏览器有没有这项功能,有,…
客户端检测一共分为三种,分别为:能力检测.怪癖检测和用户代理检测,通过这三种检测方案,我们可以充分的了解当前浏览器所处系统.所支持的语法.所具有的特殊性能. 一.能力检测: 能力检测又称作为特性检测,检测的目标不是识别特定的浏览器,而是识别浏览器的能力. 能力检测不必估计特定的浏览器,只需要确定当前的浏览器是否支持特定的能力,就可以给出可行的解决方案. var width = window.innerWidth; //如果是非 IE 浏览器 if (typeof width != 'number…
http://www.cnblogs.com/UouHt/archive/2008/10/30/1322697.html asp.net开发中,经常遇到“从客户端检测到有潜在危险的Request.Form 值”错误提示,很多人给出的解决方案是: 1.web.config文档<system.web>后面加入这一句: <pages validaterequest="false"/> 示例: <?xml version="1.0" encod…
1.能力检测:能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.(我的理解就是识别浏览器能做什么不能做什么) 2.怪癖检测:目标是识别浏览器的特殊行为.但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷(“怪癖”也就是 bug). 3.用户代理检测:争议最大的一种客户端检测技术.用户代理检测通过检测用户代理字符串来确定实际使用的浏览器.在每一次 HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过 JavaScript 的 naviga…
客户端检测是一种行之有效的开发策略.但不到万不得已,就不要使用客户端检测.先设计通用的方案,然后根据浏览器之间的差异和各自的怪癖quirky,再使用特定于浏览器的技术增强该方案. 能力检测 Feature Detection 能力检测(又称特性检测)目标是识别浏览器的能力而不是识别特定的浏览器.只需根据浏览器支持的功能给出解决方案. 能力检测作为确定下一步解决方案的依据,而不是用它来判断用户使用的是什么浏览器. 基本模式: if( object.propertyInQuestion){ //使用…
常用的客户端检测方式有以下三种: 1.能力检测 2.怪癖检测 3.用户代理检测 能力检测 最常用也是最为人们广泛接受的客户端检测形式是能力检测(又称特性检测).能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.采用这种方式不必顾及特定的浏览器如何如何,只要确定浏览器支持特定的能力,就可以给出解决方案.能力检测的基本模式如下: if(object.propertyInQuestion){ // 使用object.propertyInQuestion } 要理解能力检测,首先必须理解两个重要…
能力检测 在编写代码之前先检测特定浏览器的能力.例如,脚本在调用某个函数之前,可能要先检测该函数首付存在.这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上.能力检测无法精确地检测特定的浏览器和版本. 怪癖检测 怪癖实际上是浏览器实现中存在的bug,例如早期的webkit中就存在一个怪癖,即它会再for-in循环中返回被隐藏的属性.怪癖检测通常涉及到运行一段代码,然后确定浏览器是否存在某个怪癖.由于怪癖检测无法精确地检测特定的浏览器和版本. 用…
引言 当wifidog启动时,会启动一个线程(thread_client_timeout_check)维护客户端列表,具体就是wifidog必须定时检测客户端列表中的每个客户端是否在线,而wifidog是通过两种方式进行检测客户端在线情况,一种是定时通过iptables获取客户端出入总流量更新客户端时间,通过最近更新时间进行判断(有新的出入流量则更新客户端时间,之后使用最新客户端时间与当前时间判断),一种是查询认证服务器,通过认证服务器的返回信息进行判断(将客户端IP和状态请求发送给认证服务器,…
Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字符串.该属性包含appName,appVersion属性的所有信息 appCodeName:浏览器的代码名 platform:客户浏览器所在的操作系统 1.1 特征检测 这个是针对要了解浏览器的具体哪一项信息或者具体支持哪一项特定功能来决定的检测方式. 非精确判断,但却最安全.我们只要知道它存在不存…
前言 通常再一个web程序中,一般会存在登陆注册功能,登陆后一般会有上传头像等功能,如果上传验证不严格就可能造成攻击者直接上传木马,进而控制整个web业务控制权.下面通过实例,如果程序只进行了客户端JavaScript检测,咱们如何来绕过. 正文 工具准备:DVWA程序,burpsuite,中国菜刀. 首先本地创建一个.txt文档,里面写入咱们的一句话木马,然后将后缀名改为.php,一句话木马为 <?php eval($_POST[-7]);?> //连接菜刀的密码为-7 然后打开DVWA程序…
1. Firefox  Gecko是firefox的呈现引擎.当初的Gecko是作为通用Mozilla浏览器一部分开发的,而第一个采用Gecko引擎的浏览器是Netscape6: 我们可以使用用户代理检测下:如下JS代码: var ua = navigator.userAgent; console.log(ua); 在windows下firefox下打印如下: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/…
这是比较常见的问题了,如果Web表单中有输入类似于Html标签之类的文本,在通过Request.QueryString或者Request.Form传递这些值的时候,就会触发这样的异常,出于脚本注入等安全性考虑,这也是合情合理的. 一般情况下,程序应尽量过滤掉,或者禁止表单上类似的输入,如果业务上非得有这样的要求,需要输入标签性的文本,可以考虑在数据向服务器端传递前,将一些敏感字符按照约定规则替换掉,向客户端输出时,再还原出原始文本. 以上是个人认为比较正确的做法,当然就解决眼前问题而言,我看到的…
1 能力检测判断是否有某个属性或方法,例:在低版本中的opera浏览器中,window下有个opera属性 if (window.opera) { alert("opera"); } 2 怪癖检测通常是浏览器存在某种bug导致的,例:ie9-中如果对象有成员方法toString,则在在for-in中不会被遍历到这种检测可能会因为bug在高版本中被修复而失效 var testObj = new Object(); testObj.toString = function() { retur…
怪癖检测 和能力检测类似,但其目标不同 能力检测的目的是判断浏览器支不支持某种能力 而怪癖检测的目的是判断浏览器是否存在某些缺陷 这种时候需要我们执行一段代码来判断浏览器是否有这样的缺陷 或者说是怪癖(bug) 一般出现这种情况的浏览器当然是IE了 就以IE的某个怪癖举例 在IE8以下有一个bug 如果某个实例的属性和其原型的不可枚举属性同名,那么这个属性将不会出现在 for-in 循环中 也就是说实例上的属性被原型上的属性屏蔽了 其怪癖检测的代码如下: var hasDontEnumQuirk…
能力检测 能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力. 能力检测需要注意两点: 先检测达成目的的最常用的特性.因为先检测最常用的特性可以保证代码最优化,因为在多数情况下都可以避免测试多个条件 必须测试实际要用到的特性. 举例来说,检测某个属性是否存在并不能确定对象是否支持排序.看了下面的代码,得到的结论就是尽量使用typeof进行能力检测 function isSortable(object) { return !!object.sort;//这样做是不取的 这不是能力检测 只检测…
重新连接N次都还是这个错误提示,最后再重起电脑,还是没用.研究了一下错误终于解决了. 首先检查远程连接端口对不对?Windows远程默认的连接端口是3389,一般大家连接时直接输入IP或域名就可以连接了.如果还要加:端口号的话,就确定这个端口号对否? 本文适用范围 Windows系列所有系统.另,作者演示系统为Windows2003 远程连接中断代码0x1104解决方法/步骤 第1步:在桌面找到网上邻居图标,并右键打开网上邻居.或可以直接在开始菜单中的设置网络连接中同样打开. 第2步:打开使用的…
1.修改aspx页面中的代码,设置ValidateRequest="false" <%@ Page Language="C#" AutoEventWireup="true" CodeFile="**.cs" Inherits="***" ValidateRequest="false" %> 2.修改web.config配置,System.Web下的pages <page…
1.带有html标记内容提交(使用web编辑器): js: <script type="text/javascript"> //简单模式 var editor; KindEditor.ready(function (K) { editor = K.create('textarea[name="Content"]', { resizeType: 1, allowPreviewEmoticons: false, allowImageUpload: false…
web.config里面加上<httpRuntime requestValidationMode="2.0" />如下<system.web><httpRuntime requestValidationMode="2.0" /></system.web>…
由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值.立马报出“从客户端 中检测到有潜在危险的Request.Form值”这样的错. 解决方案一:    在.aspx文件头中加入这句:    <%@ Page validateRequest="false" %> eg:<%@ Page Language="C#" AutoEventWireup="false" ValidateR…
js009-客户端检测 本章内容: 1.使用能力检测 2.用户代理检测的历史 3.选择检测方式 一般不使用客户端检测. 9.1 能力检测 也称特性检测.基本模式如下: if(object.propertyInQuestion){ // 使用object.propertyInQuestion   } 9.1.1 更可靠的能力检测 能力检测丢想知道某个特性是否会按照适当的方式行事非常有用. typeof做能力检测是比较可靠. 9.1.2能力检测,不是浏览器检测 9.2 怪癖检测 目标:识别浏览器的特…