| 关键词: 状态 来源 版本 sobiny http 浏览器 COOKIES 测试 449 示例 |
来源:鬼仔 blog鬼仔注:前两天最早在sobiny那里看到的,后来在lcx那里看到相关代码,现在7j又写个php版本的总结下一、谈449作者:sobiny[b.c.t]来源:http://sobiny.cnHTTP的状态码大家经常见到的大概就是200,404,500等。那449这个状态码是什么呢?MSDN上的解释:Retry after doing the appropriate actionGOOGLE在线翻译上说的是:再审后,做适当的行动呵呵,经过测试,IE浏览器接收到449这个HTTP状态码后的反应是:先和普通的HTML的执行一样,先执行了449的返回的信息。然后再自动浏览当前提交的页面。其他浏览器没测试,估计也一样,不然就是浏览器的BUG了,因为这是正常的HTTP状态头呢。在各种动态脚本中,这个状态码的作用似乎还是挺大的可以在执行页面前,用JS做收集COOKIES等一些事情。。或者验证用户的一些信息等。不准想到挂马那方面去了。在ASP里面有简单的实现的方法。PHP也只需要设置HTTP状态头就行。但是这里就不给出示例代码了。http://sobiny.cn/6.asp测试页面,呵呵二、449状态码应用示例lcx的版本来源:vbs小铺 <%If session("test")="" thensession("test")="a"%><html><script language=jscript>alert(1);</script></html><%Response.Status = "449"elsesession("test")=""%><html></html><%end if%>=================cookies版本 <%dim NumNum=Request.Cookies("Visit_num")If num="" Thennum=1Response.Cookies("Visit_num")=num%><html><script language=jscript>alert(1);</script></html><%Response.Status = "449"elsenum=num+1Response.Cookies("Visit_num")=numend ifIf num>1 ThenResponse.Status = "200"Response.Cookies("Visit_num")=""End if%>=================================另一个IE BUG <script type="text/jscript">function init() { document.write("The time is: " + Date() );}window.onload = init;</script>------------------------------------------------------------------------7j的PHP版本来源:7jdgs Blog <?$thepass=helloword;if (!isset($_COOKIE[webserver])) {setcookie ("webserver",$thepass,time()+(1*24*3600));header("HTTP/1.1 449 Retry with");echo "<script language=jscript>alert(1);</script>";}echo "<html></html>";?> |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|