首页 » PHP教程 » php网页跳跃代码技巧_扭转跳跃的cookie

php网页跳跃代码技巧_扭转跳跃的cookie

访客 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

我们都知道,Http的特点是无状态,无连接,做事器但从网络连接上是无法知道用户的身份,那么怎么办呢? 以是它就会给每个客户真个用户颁发一个通畅证,这样做事器就能从这个通畅证确认客户的身份了,这个通畅证便是cookie~客户端要求做事器的时候,如果做事器须要记录这个用户状态,就利用response向客户端浏览器发一个小cookie,客户端浏览器会把这cookie保存起来,再次要求时就带着cookie一同提交给做事器,以此来辨认用户状态。

cookie的基本事情事理

php网页跳跃代码技巧_扭转跳跃的cookie

cookie紧张是通过报头HTTPHeader来通报数据,也便是在要求头和头里面通报数据,cookie机制有两种报头,set-cookie和cookie。
set-cookie存在做事器相应的头中, cookie则存在于客户端要求的头中。
(图片来自网上)

php网页跳跃代码技巧_扭转跳跃的cookie
(图片来自网络侵删)

(1)客户端在浏览器输入URL,发送读取网页的要求。

(2)做事器吸收到要求后,产生一个Set-Cookie报头,放在HTTP报文中一起回传客户端,发起一次会话。

(3)客户端收到应答后,若要连续该次会话,则将Set-Cookie中的内容取出,形成一个Cookie.txt文件储存在客户端打算机里。

(4)当客户端再次向做事器发出要求时,就在电脑里找该网站的Cookie.txt。
根据此Cookie.txt产生Cookie报头,放在HTTP要求报文中发给做事器。

(5)做事器吸收到包含Cookie报头的要求,检索其Cookie中与用户有关的信息,天生一个客户端所请示的页面应答通报给客户端。
浏览器的每一次网页要求,都可以通报已存在的Cookie文件,如浏览器的打开或刷新网页操作。

cookie格式

Cookie由变量名和值组成,格式如下:

Set-Cookie: "name=value;domain=domain.com;path=/;expires=Sat, 11 Jun 2016 11:29:42 GMT;secure"个中name=value是必选项,其它都是可选项。

name:一个唯一确定的cookie名称。
常日来讲cookie的名称是不区分大小写的。
- value:cookie的值。
最好为cookie的name和value进行url编码- domain:cookie对付哪个域是有效的。
所有向该域发送的要求中都会包含这个cookie信息。
这个值可以包含子域,也可以不包含,举个栗子a: a.qqq.com ,b: b.qqq.com 如果域a生产一个能在a和b都访问的cookie 就要将cookie的domain设置为qqq.com。
- path: 表示这个cookie影响到的路径,浏览器跟会根据这项配置,像指定域中匹配的路径发送cookie。
在同一个做事器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。
这是由于cookie能让其path路径下的页面访问。
- expires:失落效韶光, 它确定了Cookie有效终止日期,何时该当停滞向做事器发送这个cookie。
如果不设置这个韶光戳,浏览器会在页面关闭时即将删除所有cookie。
- secure: 安全标志,指定后只有在利用SSL链接时候才能发送到做事器,如果是http链接则不会通报该信息。
就算设置了secure属性也并不代表他人不能看到你机器本地保存的 cookie 信息。
查看cookie:

我们可以在浏览器中查看我们的cookie,在设置-隐私设置和安全性-内容设置-cookie-查看所有cookie和网站数据,来查看我们在当前浏览器上所有的cookie,如下图 可以在chrome中查看百度的cookie

也可以通过浏览器F12查看当前的cookie,在F12后,network-cookie中查看对应的cookie:

跳转的cookie:

在广告业务的测试中,我们常常须要从admin平台跳转到某一个账户的投放平台上,admin平台的url:admin.test.123.cn ,投放平台的url:test.123.cn。
那么为什么我们可以从一个平台跳转到另一个平台而不用上岸呢? 由于我们有神奇的小饼干—cookie哦!
由于我们在admin.test.123.com上登录的时候,会在test.123.cn上种cookie,当我们在跳转到平台的时候,这个cookie的域没有变,仍是test.123.cn 以是平台是可以直接登录,而不用再次输入用户名密码。
有的时候我们在业务线测试中,须要仿照登录,从a.qihoo.net 仿照登录跳转到 test.e.360.cn ,域名不一样,为什么也是可以直接跳转,不须要输入用户名密码呢? 由于header跳转可以给其他站点设置cookie,为啥捏? 举个例子吧~

1 在 http://a.com/test.php代码:

header(‘location:http://b.com/test.php’);

2 在http://b.com/test.php的代码:

setcookie(‘name’,‘qqq’,time()+3600);

在访问a.com/test.php 的时候 我们创造页面会跳转到b.com/test.php 并且在b.com上设置了cookie,过程可以理解为浏览器要求a.com/test.php 的时候a.com做事器返回302给浏览器,浏览器拿到相应头的location,存到内存中后,此时浏览器与a.com的通信过程实在就结束了,也便是一个要求与相应就结束了,然后浏览器拿着location地址重新要求b.com/test.php ,以是我们就可以看到浏览器跳转的画面了,此时b.com返回给浏览器相应头里面有set-cookie 的,那么浏览器得到这个cookie信息天生的文件就会存放到浏览器中的目录下了。
可以理解为如下所示的过程:

在实际业务中,我们须要从a.qihoo.net仿照登录跳转到test.e.360.c,以是这个过程可以理解为:从a.qihoo.net 仿照登录跳转到 test.e.360.cn,实际上是我们从a.qihoo.net上location到test.e.360.cn上,并在e.360.cn上种了cookie,这个cookie信息通过加密,以是我们就可以不用登录直接可以跳转了 。
在实际业务中是怎么担保加密安全的呢?一样平常会用到第三方的做事,从a.qihoo.net平台跳转到test.e.360.cn平台的时候,可以带一个token值,这个值是a.qihoo.net平台用了一个oauth做事,通过用户名密码得到的一个值,传给了test.e.360.cn平台,它在接到这个token值后也利用了这个做事去解密,得到用户名密码, 这样就可以种这个用户名和密码的cookie了~ 实现跳转啦~

https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=toutiao×tamp=1661101200&author=Muller

相关文章

PHP顶岗实技巧_软件技能实训解决筹划2024

在这一背景下,培养高本色的软件人才显得尤为主要。为此,我国提出了一系列举措,包括加强软件国民根本教诲、深化新工科培植、加快特色化示...

PHP教程 2024-12-14 阅读0 评论0