Session交互、token、CSRF、算法

session交互:

  • 服务端会话技术
  • 数据存储在服务器中
  • 默认Session存储在内存中
  • Django中默认会把Session持久化到数据库中
  • Django中Session的默认过期时间时14天
  • 主键是字符串、数据是使用了数据安全
    • 使用的base64
    • 在前部添加了一个混淆字符串
  • Session依赖于Cookie
    • get(key, default=None) 根据键获取会话的值
    • clear() 清除所有会话
    • flush() 删除当前的会话数据并删除会话的cookie
    • delete request[‘sission_id’]删除会话
    • session.session_key 获取session的key
username = request.session.get['username'] #获取session
request.session['username'] = username	#给session赋值
del request.session['username']	#删除指定session
request.session.flush() #删除所有sission、cookie

token

  • 服务端会话技术

  • 自定义的session

  • #手写生成token
    def generate_token(username, password):
        c_time = time.ctime()
        hashlib.new("md5", (username + password + c_time).encode("utf-8")).dexdigest()
    
  • pycham接口测试工具 tools->httpclient->test Restful web service

  • Cookie和Session,Token对比

    • Cookie使用更简洁,服务器压力更小,数据不是很安全
    • Session服务器要维护Session,相对安全
    • Token拥有Session的所有优点,自己维护略微麻烦,支持更多终端

CSRF

  • 防跨站攻击

  • 防止恶意注册,确保客户端是我们自己的客户端

  • 使用了cookie中csrftoken进行验证,传输

  • 服务器发送给客户端,客户端将cookie获取过来,还要进行编码转换(数据安全)

  • 如何实现?

    • 在我们存在csrf_token标签的页面中,响应会自动设置一个cookie,csrftoken
    • 当我们提交时,会自动验证csrftoken
    • 验证通过,正常执行以后流程,验证不通过,返回403
  • csrf豁免 添加装饰器

    @csrf_exempt
    def login(request):
        pass
    

算法

  • 编码解码

    • Base64
    • urlencode
  • 摘要算法,指纹算法,杂凑算法

    • MD5,SHA
      • MD5默认是128位的二进制
      • 32位的十六进制
      • 32位的Unicode
    • 单项不可逆的
    • 不管输入多长,输出都是固定长度
    • 只要输入有任意的变更,输出都会发生巨大的变化
  • 加密算法

    • 对称加密
      • 一把钥匙
      • DES,AES
      • 加密解密效率高
      • 密钥一旦丢失所有数据都会受到极大影响
    • 非对称加密
      • 两把钥匙
      • 公钥加密私钥解密或私钥加密公钥解密
      • RSA,PGP
      • 安全性最高
      • 算法复杂,需要时间空间都比较大
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值