码迷,mamicode.com
首页 > 其他好文 > 详细

Flask11 Session、CSRR

时间:2017-10-06 23:58:12      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:请求   response   rom   根据   res   秘钥   mil   cookie   https   

 

1 怎么对存储的cookie数据进行加密

  利用response对象去设置cookie时,存储到浏览器中的cookie数据都是明文的,容易被一些计算机爱好者利用;利用session存的cookie数据可以防止,因为session存储cookie数据时是经过加密的

  1.1 利用response对象存cookie数据的格式

    resp.set_cookie(‘userId‘, str(user.id), max_age=age)

    获取存入的cookie数据的格式(利用request对象进行获取)

      userId = request.cookies.get(‘userId‘, None)

  1.2 利用session对象存cookie数据逇格式

    session[‘userId‘] = str(user.id)

    获取存入的cookie数据的格式(直接利用session对象进行获取)

      userId = session.get(‘userId‘, None)

  1.3 注意

    flask中的session就是存在cookie中的字典,并且这些数据都是进过加密的,可以实现维持状态的功能,但是这些数据可以被破解但是不能够被伪造

  1.4 利用session对象操作cookie数据

    1.4.1 从flask中导入session对象

      from flask import session

    1.4.2 在flask的配置文件中配置秘钥

      import os
      SECRET_KEY = os.urandom(24) # 利用sessioncookie数据的时候会用到

      注意:如果不配置那么在设置cookie时机会报下面的错误

        技术分享

    1.4.3 设置cookie、获取cookie

      技术分享

      注意:

        技术分享

 

   1.5 session的种类

    1.5.1 cookie信息经过加密后直接放在前台

      优点:能够缓解服务器压力

      缺点:不能够保证数据不被解密,但是能够保证数据不被伪造

      经典应用:将记录的ID进行加密后直接作为cookie数据存放到前台(注意:这里的ID一般都是采用的UUID)

     1.5.2 在服务端通过数据库生成随机码来作为cookie数据

      数据库中的每条记录都对应一个唯一的随机码,将这个随机码放到cookie中,这样在前台就只能够看到随机码,用户的数据都在后台

       例如:

        技术分享

      原理解释:

        用户登录成功后,根据用户的信息到数据库中去获取对应的随机码并将其放到cookie中;下次访问相同请求时将随机码给到后台,后台会根据这个随机码去判断用户是否已经登录过

      优点:信息完全保密,状态保存在后台,可控性更好

      缺点:服务器压力大

    

2 跨站请求伪造是怎么工作的

  百度百科:点击前往

     攻击网站利用正常用户的session数据去访问正常网站

  2.1 CSRF攻击原理

    技术分享

 

  2.2 防止CSRF攻击

    保证所有的post表单,不能以session作为唯一的判断标准;再另外添加一个标准,这个标准对自己的网站是符合的,对别人的网站是失效的;例如:在session中添加一个随机码,在表单中添加一个随机码,这两个随机码保持一致

     

 

Flask11 Session、CSRR

标签:请求   response   rom   根据   res   秘钥   mil   cookie   https   

原文地址:http://www.cnblogs.com/NeverCtrl-C/p/7633235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!