cookie

一.cookie的定义

  保存在浏览器端的键值对,可以利用来做登录

  注意:1,保存在用户的浏览器

     2,可以主动清除

       3,也可以被伪造

     4,跨域名cookie不共享

        5,浏览器可以设置不用cookie

二. 对cookie操作

1、获取Cookie:

1 request.COOKIES['key']
2 request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
3     参数:
4         default: 默认值
5            salt: 加密盐
6         max_age: 后台控制过期

2、设置Cookie:

rep = HttpResponse(...) 或 rep = render(request, ...)
 
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密盐',...)
    参数:
        key,              键
        value='',         值
        max_age=None,     超时时间
        expires=None,     超时时间(IE requires expires, so set it if hasn't been already.)
        path='/',         Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问
        domain=None,      Cookie生效的域名,只能对二级域名进行设置
        secure=False,     https传输
        httponly=False    只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

实例

def    test(request):
    #return HttpResponse("ok")
    obj=HttpResponse("ok")
    import datetime
    y=datetime.datetime.utcnow()+datetime.timedelta(seconds=10)
    obj.set_cookie('k1','v1',max_age=10,expires=y)
    return obj

由于cookie保存在客户端的电脑上,所以,JavaScript和jquery也可以操作cookie。

1
2
<script src='/static/js/jquery.cookie.js'></script>
$.cookie("list_pager_num"30,{ path: '/' });

Cookie的应用:

  登录认证

    普通cookie  敏感信息直接暴露直接看到,不宜放置在cookie中,敏感信息应该放在数据库中,但会对数据库进行频繁的操作

    签名的cookie  对敏感信息进行加密,但可能会被解密,任然不安全

  cookie的信息是放在响应头和请求头中发送。

 

总结:

  服务器操作cookie:

    obj.set_cookie('k1','v1',max_age=10)

  客户端浏览器上操作cookie

    1,dom  通过字符串的截取获得信息

    2,jQuery插件  jquery.cookie.js文件要引入

参考文献  www.cnblogs.com/wupeiqi/articles/5246483.html

https://www.cnblogs.com/andy-zhou/p/5360107.html#_caption_1

posted on 2020-08-09 10:37  居一雪  阅读(85)  评论(0编辑  收藏  举报

导航