关于Cookie

Cookie
a small piece of data sent from a website and stored on the user’s computer by the user’s web browser while the user is browsing. Cookies were designed to be a reliable mechanism for websites to remember stateful information
Cookie中有一个关键的值:PHPSESSION,被称为会话ID
http的认证过程
在这里插入图片描述

Cookie与会话管理

使用HTTP可以使浏览器记住密码,但如果不使用HTTP,那么由服务器完成记忆认证状态。这种功能叫做会话管理。
Cookie相当于服务器给浏览器下达的命令,让他记住发送给它的“名称=变量”这种格式的值。
记住Cookie值的浏览器,从此再向相同网站发送消息时,就会发送已被记住的Cookie值。

Cookie: PHPSESSID=at22nt7oe51799lnfmv8uib4v7

这里PHPSESSID的值被称为会话ID,是访问信息的关键。认证成功的用户ID保存在会话变量 $_SESSION[‘ID’]中。

  • 会话ID的安全措施
  1. 不能被第三方推测:即生成的随机数要足够随机,一般采用电子政府的推荐列表。
  2. 不能被第三方劫持:劫持正规用户的ID进行攻击的手法成为会话固定攻击。可以通过认证后改变会话ID进行防范。
  3. 不能向第三方泄露
    会话泄露的原因:
  • 发行Cookie是指定的属性有问题
  • 会话ID被监听
  • 通过跨站脚本漏洞等应用中的安全隐患被泄露
  • PHP存在安全隐患被泄露
  • ID保存至URL中,通过Referer泄露。

Cookie的一些属性:

属性含义
DomainCookie发送对象服务器的域名
Path发送对象URL的路径
Expires有效期限,未指明则直到浏览器被关闭
Secure仅在SSL加密的情况发送Cookie
HttpOnly指定了此属性Cookie不能被JavaScript访问
  • Domain属性
    默认情况下只能被发送到被绑定的服务器上去。如果向多个服务器发送Cookie,就要用到此属性。
    如果一个服务器在Set-Cookie中制定了Domain=另一个域名,那么Cookie会被浏览器忽略,因为如果可以在Cookie中指定不同域名就可能发生会话固定攻击。所以Cookie是不能指定不同域名的。
    原则上不要设置Domain属性!!

  • Secure属性
    设置了Secure的Cookie仅在SSL传输的情况下被发送给服务器。未设置则是否为SSL都会传输。

  • HttpOnly属性
    打开之后可以禁止JavaScript访问该Cookie。

session.cookie_httponly = on

cookie如何访问?

  • 因为浏览器提供了 cookie 属性给 JavaScript,所以可以通过 document.cookie 来访问这个页面中的cookie。

  • F12后,在存储界面中找到cookie的值
    hih
    此后在浏览器界面中加上后缀名cookie.php即可访问cookie界面

  • 使用fiddler访问
    可以直接在请求界面点击上界面框的Cookie选项进行查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值